MarekLi
MarekLi

Reputation: 951

How can I include some libs in onPrepare startup function in protractor?

I need to do something more in onPrepare phase. For this startup code I need some external libraries. How can I include some files for onPrepare function?

My app need websql database in browser so I need add some fixtures: create tables and add some testing data in it. I wrote some small library for easy CRUD queries for websql db. So I don't want to write raw javascript for creating tables and append data.

Is any recommended way how can I achieve it?

Upvotes: 0

Views: 968

Answers (1)

Gamebreaker
Gamebreaker

Reputation: 387

For adding external libraries I just do

var env = require('./environment.js');

exports.config = {
  seleniumAddress: env.seleniumAddress,

  // Spec patterns are relative to this directory.
  specs: [
    'onPrepare/*_spec.js'
  ],

  capabilities: env.capabilities,

  baseUrl: env.baseUrl,

  onPrepare: function() {

    var UntrustedCertOverride = require('./untrusted-cert-override.js');
    var OracleSsoPage = require('./claimsoverview/oracle-sso.po.js');

    //Setup a global variable for using the non-angular driver
    global.dvr = browser.driver;

    dvr.get('/url');
    UntrustedCertOverride(dvr);

    var oracleSsoPage = new OracleSsoPage(dvr);
    //etc.....

},
};

Or if you don't want your onPrepare: to be messy do this

var env = require('./environment.js');

// Configuration using a string in onPrepare to load a file with code to
// execute once before tests.
exports.config = {
  seleniumAddress: env.seleniumAddress,

 // Spec patterns are relative to this directory.
  specs: [
    'onPrepare/*_spec.js'
  ],

  capabilities: env.capabilities,

  baseUrl: env.baseUrl,

  onPrepare: 'onPrepare/startup.js'
};

More Examples and Best practices can be found here: https://github.com/angular/protractor/tree/a368de0b74db35a90d9a2d8aa48a7e57a45a2aa7/spec

Upvotes: 1

Related Questions