UNPKG

1.98 kBJavaScriptView Raw
1"use strict";
2
3var assert = require("assert");
4var BrowserStack = require("../lib/browserstack");
5var util = require("./util");
6
7var apiLatestVersion = 4;
8
9var username = util.browserStack.username;
10var password = util.browserStack.password;
11
12if (!username || !password) {
13 throw new Error("Please set BROWSERSTACK_USERNAME and BROWSERSTACK_KEY environment variables.");
14}
15
16describe("Public API", function() {
17 it("exposes API and Screenshots clients", function() {
18 [
19 "createClient",
20 "createScreenshotClient"
21 ].forEach(function(fn) {
22 assert.equal("function", typeof BrowserStack[fn]);
23 });
24 });
25
26 describe("new ApiClient", function() {
27 var className = "ApiClient";
28
29 it("should return an API client", function() {
30 var client = BrowserStack.createClient({
31 username: username,
32 password: password
33 });
34
35 assert.equal(className, client.constructor.name, "instance of " + className);
36 });
37
38 it("should return an API client of a particular version", function() {
39 for (var version = 1; version <= apiLatestVersion; version++) {
40 var client = BrowserStack.createClient({
41 username: username,
42 password: password,
43 version: version
44 });
45
46 assert.equal(className, client.constructor.name, "instance of ApiClient");
47 assert.equal(version, client.version, "ApiClient version mismatch");
48 }
49 });
50
51 it("should throw an error for invalid ApiClient version", function() {
52 try {
53 BrowserStack.createClient({
54 username: username,
55 password: password,
56 version: -1
57 });
58 } catch (err) {
59 assert.ok(err.toString().match(/invalid version/i));
60 }
61 });
62 });
63
64 describe("new ScreenshotClient", function() {
65 var className = "ScreenshotClient";
66
67 it("should return a screenshot client", function() {
68 var client = BrowserStack.createScreenshotClient({
69 username: username,
70 password: password
71 });
72
73 assert.equal(className, client.constructor.name, "instance of " + className);
74 });
75 });
76});