From 0523cfd0309f7add440169b523176ed7baa64ec3 Mon Sep 17 00:00:00 2001 From: Eslam El-Hakmey Date: Thu, 16 May 2019 18:56:12 +0200 Subject: [PATCH] test(server): move live reload tests to new file --- test/ContentBase.test.js | 103 ---------------------------------- test/LiveReload.test.js | 116 +++++++++++++++++++++++++++++++++++++++ 2 files changed, 116 insertions(+), 103 deletions(-) create mode 100644 test/LiveReload.test.js diff --git a/test/ContentBase.test.js b/test/ContentBase.test.js index 23d2d09e63..bf743aac7c 100644 --- a/test/ContentBase.test.js +++ b/test/ContentBase.test.js @@ -18,109 +18,6 @@ const contentBaseOther = path.join( describe('ContentBase', () => { let server; let req; - describe('Test disabling live reloading', () => { - const nestedFile = path.join(contentBasePublic, 'assets/example.txt'); - - jest.setTimeout(30000); - - beforeAll((done) => { - server = helper.start( - config, - { - contentBase: contentBasePublic, - watchContentBase: true, - liveReload: false, - }, - done - ); - req = request(server.app); - }); - - afterAll((done) => { - helper.close(() => { - done(); - }); - fs.truncateSync(nestedFile); - }); - - it('Should not reload on changing files', (done) => { - let reloaded = false; - - server.contentBaseWatchers[0].on('change', () => { - // it means that file has changed - - // simulating server behaviour - if (server.options.liveReload !== false) { - Object.defineProperty(window.location, 'reload', { - configurable: true, - }); - window.location.reload = jest.fn(); - window.location.reload(); - reloaded = true; - } - expect(reloaded).toBe(false); - - done(); - }); - - // change file content - setTimeout(() => { - fs.writeFileSync(nestedFile, 'Heyo', 'utf8'); - }, 1000); - }); - }); - - describe('Testing live reloading', () => { - const nestedFile = path.join(contentBasePublic, 'assets/example.txt'); - - jest.setTimeout(30000); - - beforeAll((done) => { - server = helper.start( - config, - { - contentBase: contentBasePublic, - watchContentBase: true, - liveReload: true, - }, - done - ); - req = request(server.app); - }); - - afterAll((done) => { - helper.close(() => { - done(); - }); - fs.truncateSync(nestedFile); - }); - - it('Should reload on changing files', (done) => { - let reloaded = false; - - server.contentBaseWatchers[0].on('change', () => { - // it means that files has changed - - // simulating server behaviour - if (server.options.liveReload !== false) { - Object.defineProperty(window.location, 'reload', { - configurable: true, - }); - window.location.reload = jest.fn(); - window.location.reload(); - reloaded = true; - } - expect(reloaded).toBe(true); - - done(); - }); - - // change file content - setTimeout(() => { - fs.writeFileSync(nestedFile, 'Heyo', 'utf8'); - }, 1000); - }); - }); describe('to directory', () => { const nestedFile = path.join(contentBasePublic, 'assets/example.txt'); diff --git a/test/LiveReload.test.js b/test/LiveReload.test.js new file mode 100644 index 0000000000..d1a667f862 --- /dev/null +++ b/test/LiveReload.test.js @@ -0,0 +1,116 @@ +'use strict'; + +const path = require('path'); +const fs = require('fs'); +const helper = require('./helper'); +const config = require('./fixtures/contentbase-config/webpack.config'); + +const contentBasePublic = path.join( + __dirname, + 'fixtures/contentbase-config/public' +); + +describe('liveReload', () => { + let server; + describe('Test disabling live reloading', () => { + const nestedFile = path.join(contentBasePublic, 'assets/example.txt'); + + jest.setTimeout(30000); + + beforeAll((done) => { + server = helper.start( + config, + { + contentBase: contentBasePublic, + watchContentBase: true, + liveReload: false, + }, + done + ); + }); + + afterAll((done) => { + helper.close(() => { + done(); + }); + fs.truncateSync(nestedFile); + }); + + it('Should not reload on changing files', (done) => { + let reloaded = false; + + server.contentBaseWatchers[0].on('change', () => { + // it means that file has changed + + // simulating server behaviour + if (server.options.liveReload !== false) { + Object.defineProperty(window.location, 'reload', { + configurable: true, + }); + window.location.reload = jest.fn(); + window.location.reload(); + reloaded = true; + } + expect(reloaded).toBe(false); + + done(); + }); + + // change file content + setTimeout(() => { + fs.writeFileSync(nestedFile, 'Heyo', 'utf8'); + }, 1000); + }); + }); + + describe('Testing live reloading', () => { + const nestedFile = path.join(contentBasePublic, 'assets/example.txt'); + + jest.setTimeout(30000); + + beforeAll((done) => { + server = helper.start( + config, + { + contentBase: contentBasePublic, + watchContentBase: true, + liveReload: true, + }, + done + ); + }); + + afterAll((done) => { + helper.close(() => { + done(); + }); + fs.truncateSync(nestedFile); + }); + + it('Should reload on changing files', (done) => { + let reloaded = false; + + server.contentBaseWatchers[0].on('change', () => { + // it means that files has changed + + // simulating server behaviour + if (server.options.liveReload !== false) { + Object.defineProperty(window.location, 'reload', { + configurable: true, + }); + window.location.reload = jest.fn(); + window.location.reload(); + reloaded = true; + } + expect(reloaded).toBe(true); + + done(); + }); + + // change file content + setTimeout(() => { + fs.writeFileSync(nestedFile, 'Heyo', 'utf8'); + }, 1000); + }); + }); +});