diff --git a/Gruntfile.js b/Gruntfile.js index 8278627..d4e0604 100644 --- a/Gruntfile.js +++ b/Gruntfile.js @@ -2,7 +2,7 @@ var _ = require('lodash'); -var desireds = require('./desireds'); +var desireds = require('./test/browser/browserTestConfig'); var gruntConfig = { env: { @@ -19,7 +19,7 @@ var gruntConfig = { }, mocha_istanbul: { coverage: { - 'src': 'test/test.js' + src: ['test/*.js'] } }, mochaTest: { @@ -29,14 +29,14 @@ var gruntConfig = { quiet: false, clearRequireCache: true }, - src: ['test/test.js'] + src: ['test/*.js'] }, sauce: { options: { timeout: 60000, reporter: 'spec' }, - src: ['test/browserTest.js'] + src: ['test/browser/*.js'] } }, watch: { diff --git a/test/browser/browserTestConfig.js b/test/browser/browserTestConfig.js new file mode 100644 index 0000000..0994b4a --- /dev/null +++ b/test/browser/browserTestConfig.js @@ -0,0 +1,17 @@ +module.exports = { + "chrome": { + "browserName": "chrome", + "visibility": "public", + "build":1 + }, + "firefox": { + "browserName": "firefox", + "visibility": "public", + "build":1 + }, + "explorer": { + "browserName": "internet explorer", + "visibility": "public", + "build":1 + } +}; diff --git a/test/browser/test.js b/test/browser/test.js new file mode 100644 index 0000000..b3c4d94 --- /dev/null +++ b/test/browser/test.js @@ -0,0 +1,68 @@ +'use strict'; + +/*global describe, after, afterEach, before*/ + +var chai = require('chai'); +chai.expect(); +chai.should(); + +var wd = require('wd'); +var chaiAsPromised = require("chai-as-promised"); + +chai.use(chaiAsPromised); +chaiAsPromised.transferPromiseness = wd.transferPromiseness; + +if (!process.env.SAUCE_USERNAME) { + throw new Error("Missing sauce user name"); +} + +if (!process.env.SAUCE_ACCESS_KEY) { + throw new Error("Missing sauce sauce access key"); +} + +wd.configureHttp({ + timeout: 60000, + retryDelay: 15000, + retries: 5 +}); + +var desired = JSON.parse(process.env.DESIRED); + +describe('browser test ' + desired.browserName, function () { + + var browser; + var allPassed = true; + + before(function (done) { + var username = process.env.SAUCE_USERNAME; + var accessKey = process.env.SAUCE_ACCESS_KEY; + browser = wd.promiseChainRemote("ondemand.saucelabs.com", 80, username, accessKey); + + if (process.env.VERBOSE) { + browser.on('status', function (info) { + console.log(info.cyan); + }); + + browser.on('command', function (meth, path, data) { + console.log(' > ' + meth.yellow, path.grey, data || ''); + }); + } + browser + .init(desired) + .nodeify(done); + }); + + afterEach(function (done) { + allPassed = allPassed && (this.currentTest.state === 'passed'); + done(); + }); + + after(function (done) { + browser + .quit() + .sauceJobStatus(allPassed) + .nodeify(done); + }); + + require('../test'); +}); diff --git a/test/browserTest.js b/test/browserTest.js deleted file mode 100644 index bc5d368..0000000 --- a/test/browserTest.js +++ /dev/null @@ -1,71 +0,0 @@ -'use strict'; - -/*global describe, after, afterEach, before*/ - -var chai = require('chai'); -chai.expect(); -chai.should(); - -var wd = require('wd'); -var chaiAsPromised = require("chai-as-promised"); - -chai.use(chaiAsPromised); -chaiAsPromised.transferPromiseness = wd.transferPromiseness; - -//// checking sauce credential -if (!process.env.SAUCE_USERNAME || !process.env.SAUCE_ACCESS_KEY) { - throw new Error("Missing sauce credentials"); -} -// http configuration, not needed for simple runs -wd.configureHttp({ - timeout: 60000, - retryDelay: 15000, - retries: 5 -}); - -var desired = require('../desireds'); -//desired.name = 'example with ' + desired.browserName; -desired.tags = ['saucy test']; -desired.visibility = 'public'; -desired.build = '1'; - -describe('report generator', function () { - - describe('tutorial (' + desired.browserName + ')', function () { - var browser; - var allPassed = true; - - before(function (done) { - var username = process.env.SAUCE_USERNAME; - var accessKey = process.env.SAUCE_ACCESS_KEY; - browser = wd.promiseChainRemote("ondemand.saucelabs.com", 80, username, accessKey); - if (process.env.VERBOSE) { - // optional logging - browser.on('status', function (info) { - console.log(info.cyan); - }); - browser.on('command', function (meth, path, data) { - console.log(' > ' + meth.yellow, path.grey, data || ''); - }); - } - browser - .init(desired) - .nodeify(done); - }); - - afterEach(function (done) { - allPassed = allPassed && (this.currentTest.state === 'passed'); - done(); - }); - - after(function (done) { - browser - .quit() - .sauceJobStatus(allPassed) - .nodeify(done); - }); - - require('./test'); - - }); -});