lix-website/themes/lix/assets/bootstrap/node_modules/browserstack/test/screenshot.js
2024-04-26 22:49:34 -06:00

96 lines
2.1 KiB
JavaScript

"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);
});
});
});
});