client.js 1.9 KB

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