1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495 |
- "use strict";
- var should = require("should");
- var BrowserStack = require("../lib/browserstack");
- var util = require("./util");
- var username = util.browserStack.username;
- var password = util.browserStack.password;
- if (!username || !password) {
- throw new Error("Please set BROWSERSTACK_USERNAME and BROWSERSTACK_KEY environment variables.");
- }
- describe("Screenshot API", function() {
- this.timeout(300000); // 300s
- var client;
- beforeEach(function() {
- client = BrowserStack.createScreenshotClient({
- username: username,
- password: password
- });
- });
- it("should list browsers", function(done) {
- client.getBrowsers(function(err, browsers) {
- should.ifError(err);
- browsers.should.be.an.Array().and.not.be.empty();
- browsers.map(util.validateBrowserObject);
- done(err);
- });
- });
- it("should generate screenshots for multiple browsers", function(done) {
- var options = {
- url: "http://www.example.com",
- browsers: ["40.0", "41.0", "42.0"].map(function(v) {
- return {
- os: "Windows",
- os_version: "7",
- browser: "chrome",
- browser_version: v
- };
- })
- };
- client.generateScreenshots(options, function(err, job) {
- should.ifError(err);
- util.validateScreenshotJob(job);
- util.pollScreenshotWorker(client, job, function(err, isRunning) {
- if (!err && !isRunning) {
- // this is highly dependent on demand and queue time at BrowserStack;
- // little point in stalling the test run waiting for this job to complete
- // print warning in console for user to decide
- console.warn("\t[WARN] worker %s did not run within timeout", job.job_id);
- }
- done(err);
- });
- });
- });
- it("should fetch a screenshot job", function(done) {
- var options = {
- url: "http://www.example.com",
- browsers: [
- {
- os: "Windows",
- os_version: "7",
- browser: "chrome",
- browser_version: "42.0"
- }
- ]
- };
- client.generateScreenshots(options, function(err, job) {
- should.ifError(err);
- util.validateScreenshotJob(job);
- client.getJob(job.job_id, function(err, job) {
- if (!err) {
- util.validateScreenshotJob(job);
- }
- done(err);
- });
- });
- });
- });
|