serve.spec.js 4.9KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107
  1. "use strict";
  2. Object.defineProperty(exports, "__esModule", { value: true });
  3. var serve = require("./serve");
  4. var config = require("./util/config");
  5. var watch = require("./watch");
  6. var open = require("./util/open");
  7. var notificationServer = require("./dev-server/notification-server");
  8. var httpServer = require("./dev-server/http-server");
  9. var liveReloadServer = require("./dev-server/live-reload");
  10. var network = require("./util/network");
  11. describe('test serve', function () {
  12. var configResults;
  13. var context;
  14. var openSpy;
  15. beforeEach(function () {
  16. context = {
  17. rootDir: '/',
  18. wwwDir: '/www',
  19. buildDir: '/build',
  20. };
  21. configResults = {
  22. httpPort: 8100,
  23. hostBaseUrl: 'http://localhost:8100',
  24. host: '0.0.0.0',
  25. rootDir: '/',
  26. wwwDir: '/www',
  27. buildDir: '/build',
  28. isCordovaServe: false,
  29. launchBrowser: true,
  30. launchLab: false,
  31. browserToLaunch: null,
  32. useLiveReload: true,
  33. liveReloadPort: 35729,
  34. notificationPort: 53703,
  35. useServerLogs: false,
  36. useProxy: true,
  37. notifyOnConsoleLog: false,
  38. devapp: false
  39. };
  40. spyOn(network, 'findClosestOpenPorts').and.callFake(function (host, ports) { return Promise.resolve(ports); });
  41. spyOn(notificationServer, 'createNotificationServer');
  42. spyOn(liveReloadServer, 'createLiveReloadServer');
  43. spyOn(httpServer, 'createHttpServer');
  44. spyOn(watch, 'watch').and.returnValue(Promise.resolve());
  45. openSpy = spyOn(open, 'default');
  46. });
  47. it('should work with no args on a happy path', function () {
  48. return serve.serve(context).then(function () {
  49. expect(network.findClosestOpenPorts).toHaveBeenCalledWith('0.0.0.0', [53703, 35729, 8100]);
  50. expect(notificationServer.createNotificationServer).toHaveBeenCalledWith(configResults);
  51. expect(liveReloadServer.createLiveReloadServer).toHaveBeenCalledWith(configResults);
  52. expect(httpServer.createHttpServer).toHaveBeenCalledWith(configResults);
  53. expect(openSpy.calls.mostRecent().args[0]).toEqual('http://localhost:8100');
  54. expect(openSpy.calls.mostRecent().args[1]).toEqual(null);
  55. });
  56. });
  57. it('should include ionicplatform in the browser url if platform is passed', function () {
  58. config.addArgv('--platform');
  59. config.addArgv('android');
  60. return serve.serve(context).then(function () {
  61. expect(network.findClosestOpenPorts).toHaveBeenCalledWith('0.0.0.0', [53703, 35729, 8100]);
  62. expect(notificationServer.createNotificationServer).toHaveBeenCalledWith(configResults);
  63. expect(liveReloadServer.createLiveReloadServer).toHaveBeenCalledWith(configResults);
  64. expect(httpServer.createHttpServer).toHaveBeenCalledWith(configResults);
  65. expect(openSpy.calls.mostRecent().args[0]).toEqual('http://localhost:8100?ionicplatform=android');
  66. expect(openSpy.calls.mostRecent().args[1]).toEqual(null);
  67. });
  68. });
  69. it('all args should be set in the config object and should be passed on to server functions', function () {
  70. config.setProcessArgs([]);
  71. config.addArgv('--serverlogs');
  72. configResults.useServerLogs = true;
  73. config.addArgv('--consolelogs');
  74. configResults.notifyOnConsoleLog = true;
  75. config.addArgv('--noproxy');
  76. configResults.useProxy = false;
  77. config.addArgv('--nolivereload');
  78. configResults.useLiveReload = false;
  79. config.addArgv('--lab');
  80. configResults.launchLab = true;
  81. config.addArgv('--browser');
  82. config.addArgv('safari');
  83. configResults.browserToLaunch = 'safari';
  84. config.addArgv('--port');
  85. config.addArgv('8101');
  86. configResults.httpPort = 8101;
  87. config.addArgv('--address');
  88. config.addArgv('127.0.0.1');
  89. configResults.host = '127.0.0.1';
  90. configResults.hostBaseUrl = 'http://127.0.0.1:8101';
  91. config.addArgv('--livereload-port');
  92. config.addArgv('35730');
  93. configResults.liveReloadPort = 35730;
  94. config.addArgv('--dev-logger-port');
  95. config.addArgv('53704');
  96. configResults.notificationPort = 53704;
  97. return serve.serve(context).then(function () {
  98. expect(network.findClosestOpenPorts).toHaveBeenCalledWith('127.0.0.1', [53704, 35730, 8101]);
  99. expect(notificationServer.createNotificationServer).toHaveBeenCalledWith(configResults);
  100. expect(liveReloadServer.createLiveReloadServer).toHaveBeenCalledWith(configResults);
  101. expect(httpServer.createHttpServer).toHaveBeenCalledWith(configResults);
  102. expect(openSpy.calls.mostRecent().args[0]).toEqual('http://127.0.0.1:8101/ionic-lab');
  103. expect(openSpy.calls.mostRecent().args[1]).toEqual('safari');
  104. });
  105. });
  106. });