Dalek.Sauce Class
This module is a driver plugin for DalekJS. It connects Daleks testsuite with the remote testing environment of Sauce Labs.
The driver can be installed with the following command:
$ npm install dalek-driver-sauce --save-dev
You can use the driver by adding a config option to the your Dalekfile
"driver": ["sauce"]
Or you can tell Dalek that it should run your tests via sauces service via the command line:
$ dalek mytest.js -d sauce
In order to run your tests within the Sauce Labs infrastructure, you must add your sauce username & key to your dalek configuration. Those two parameters must be set in order to get this driver up & running. You can specifiy them within your Dalekfile like so:
"driver.sauce": {
"user": "dalekjs",
"key": "aaaaaa-1234-567a-1abc-1br6d9f68689"
}
It is also possible to specify a set of other extra saucy parameters like name
& tags
:
"driver.sauce": {
"user": "dalekjs",
"key": "aaaaaa-1234-567a-1abc-1br6d9f68689",
"name": "Guineapig",
"tags": ["dalek", "testproject"]
}
If you would like to have a more control over the browser/OS combinations that are available, you are able to configure you custom combinations:
"browsers": [{
"chrome": {
"platform": "OS X 10.6",
"actAs": "chrome",
"version": 27
},
"chromeWin": {
"platform": "Windows 7",
"actAs": "chrome",
"version": 27
},
"chromeLinux": {
"platform": "Linux",
"actAs": "chrome",
"version": 26
}
You can then call your custom browsers like so:
$ dalek mytest.js -d sauce -b chrome,chromeWin,chromeLinux
or you can define them in your Dalekfile:
"browser": ["chrome", "chromeWin", "chromeLinux"]
A list of all available browser/OS combinations, can be found here.
Item Index
Methods
_actionQueueNonReturneeTemplate
-
fnName
-
hash
-
uuid
Generates a chain of webdriver calls for webdriver methods that don't have a return value TODO: Name is weird, should be saner
Parameters:
-
fnName
StringName of the webdriver function that should be called
-
hash
StringUnique action hash
-
uuid
StringUnique action hash
_createNonReturnee
-
fnName
Creates an anonymus function that calls a webdriver method that has no return value, emits an empty result event if the function has been run TODO: Name is weird, should be saner
Parameters:
-
fnName
StringName of the webdriver function that should be called
Returns:
fn
_driverStatus
-
statusInfo
Loads the browser driver status
Parameters:
-
statusInfo
ObjectDriver status information
Returns:
promise Driver status promise
_generateDummyDriverMessageFn
-
fnName
-
hash
-
uuid
Creates a driver notification with an empty value TODO: Name is weird, should be saner
Parameters:
-
fnName
StringName of the webdriver function that should be called
-
hash
StringUnique action hash
-
uuid
StringUnique action hash
Returns:
promise Driver message promise
_initializeProperties
-
browser
Binds listeners on browser events
Parameters:
-
browser
ObjectBrowser module
_initializeProperties
-
opts
Initializes the driver properties
Parameters:
-
opts
ObjectOptions needed to kick off the driver
_sessionStatus
-
sessionInfo
Loads the browser session status
Parameters:
-
sessionInfo
ObjectSession information
Returns:
promise Browser session promise
_startBrowserSession
-
deferred
Creates a new webdriver session Gets the driver status Gets the session status Resolves the promise (e.g. let them tests run)
Parameters:
-
deferred
ObjectBrowser session deferred
create
-
opts
Creates a new driver instance
Parameters:
-
opts
ObjectOptions needed to kick off the driver
Returns:
driver
dummyBrowser
()
Bool
Determines if the driver comes with its own browsers bundled
Returns:
isDummyBrowser Driver does not rely on Dalek browser modules
end
()
chainable
Starts to execution of a batch of tests
flushQueue
()
chainable
Flushes the action queue (e.g. commands that should be send to the wbdriver server)
getBrowser
-
driver
Returnes the browser that comes bundled with the driver
Parameters:
-
driver
ObjectDriver instance
Returns:
Browser module
isMultiBrowser
()
Bool
Determines if the driver is a "multi" browser driver, e.g. can handle more than one browser
Returns:
isMultiBrowser Driver can handle more than one browser
start
()
Object
Checks if a webdriver session has already been established, if not, create a new one
Returns:
promise Driver promise
verifyBrowser
()
Bool
Verifies a browser request TODO: Still a noop, need to add "verify the browser" logic
Returns:
isVerifiedBrowser Driver can handle this browser