From a9c8b13e6e3800d72b9bd1f703fc693f5059aebd Mon Sep 17 00:00:00 2001 From: Amjad Masad Date: Sat, 28 Feb 2015 14:30:34 -0800 Subject: [PATCH] [React Native][react-packager] Fix test runner and fialing tests --- .../src/Activity/__tests__/Activity-test.js | 6 +++++- .../__tests__/DependencyGraph-test.js | 1 - .../src/FileWatcher/__mocks__/sane.js | 5 +++++ .../src/JSTransformer/__mocks__/q.js | 6 ++++++ .../src/JSTransformer/__mocks__/underscore.js | 5 +++++ .../src/JSTransformer/__tests__/Cache-test.js | 3 +-- .../JSTransformer/__tests__/Transformer-test.js | 1 - .../src/Packager/__tests__/Package-test.js | 6 +----- .../src/Server/__tests__/Server-test.js | 14 +++++++++----- packager/react-packager/src/Server/index.js | 1 + 10 files changed, 33 insertions(+), 15 deletions(-) create mode 100644 packager/react-packager/src/FileWatcher/__mocks__/sane.js create mode 100644 packager/react-packager/src/JSTransformer/__mocks__/q.js create mode 100644 packager/react-packager/src/JSTransformer/__mocks__/underscore.js diff --git a/packager/react-packager/src/Activity/__tests__/Activity-test.js b/packager/react-packager/src/Activity/__tests__/Activity-test.js index bd0265f96..7fe316148 100644 --- a/packager/react-packager/src/Activity/__tests__/Activity-test.js +++ b/packager/react-packager/src/Activity/__tests__/Activity-test.js @@ -10,6 +10,7 @@ describe('Activity', function() { beforeEach(function() { console.log = jest.genMockFn(); Activity = require('../'); + jest.runOnlyPendingTimers(); }); afterEach(function() { @@ -60,12 +61,15 @@ describe('Activity', function() { expect(function() { Activity.endEvent(eid); - }).toThrow('event(1) has already ended!'); + }).toThrow('event(3) has already ended!'); + + jest.runOnlyPendingTimers(); }); }); describe('signal', function() { it('writes a SIGNAL event out to the console', function() { + var EVENT_NAME = 'EVENT_NAME'; var DATA = {someData: 42}; diff --git a/packager/react-packager/src/DependencyResolver/haste/DependencyGraph/__tests__/DependencyGraph-test.js b/packager/react-packager/src/DependencyResolver/haste/DependencyGraph/__tests__/DependencyGraph-test.js index 1c268c6b0..eb839296c 100644 --- a/packager/react-packager/src/DependencyResolver/haste/DependencyGraph/__tests__/DependencyGraph-test.js +++ b/packager/react-packager/src/DependencyResolver/haste/DependencyGraph/__tests__/DependencyGraph-test.js @@ -5,7 +5,6 @@ jest .dontMock('q') .dontMock('path') .dontMock('absolute-path') - .dontMock('../../../../fb-path-utils') .dontMock('../docblock') .setMock('../../../ModuleDescriptor', function(data) {return data;}); diff --git a/packager/react-packager/src/FileWatcher/__mocks__/sane.js b/packager/react-packager/src/FileWatcher/__mocks__/sane.js new file mode 100644 index 000000000..20dda2a2b --- /dev/null +++ b/packager/react-packager/src/FileWatcher/__mocks__/sane.js @@ -0,0 +1,5 @@ +'use strict'; + +module.exports = { + WatchmanWatcher: jest.genMockFromModule('sane/src/watchman_watcher') +}; diff --git a/packager/react-packager/src/JSTransformer/__mocks__/q.js b/packager/react-packager/src/JSTransformer/__mocks__/q.js new file mode 100644 index 000000000..3d4d21f15 --- /dev/null +++ b/packager/react-packager/src/JSTransformer/__mocks__/q.js @@ -0,0 +1,6 @@ +'use strict'; + +// Bug with Jest because we're going to the node_modules that is a sibling +// of what jest thinks our root (the dir with the package.json) should be. + +module.exports = require.requireActual('q'); diff --git a/packager/react-packager/src/JSTransformer/__mocks__/underscore.js b/packager/react-packager/src/JSTransformer/__mocks__/underscore.js new file mode 100644 index 000000000..a985ab206 --- /dev/null +++ b/packager/react-packager/src/JSTransformer/__mocks__/underscore.js @@ -0,0 +1,5 @@ +'use strict'; + +// Bug with Jest because we're going to the node_modules that is a sibling +// of what jest thinks our root (the dir with the package.json) should be. +module.exports = require.requireActual('underscore'); diff --git a/packager/react-packager/src/JSTransformer/__tests__/Cache-test.js b/packager/react-packager/src/JSTransformer/__tests__/Cache-test.js index 232d6ff44..97a500973 100644 --- a/packager/react-packager/src/JSTransformer/__tests__/Cache-test.js +++ b/packager/react-packager/src/JSTransformer/__tests__/Cache-test.js @@ -3,7 +3,6 @@ jest .dontMock('underscore') .dontMock('path') - .dontMock('q') .dontMock('absolute-path') .dontMock('../Cache'); @@ -194,7 +193,7 @@ describe('JSTransformer Cache', function() { return q('baz value'); }); - jest.runAllTimers(); + jest.runAllTicks(); expect(fs.writeFile).toBeCalled(); }); }); diff --git a/packager/react-packager/src/JSTransformer/__tests__/Transformer-test.js b/packager/react-packager/src/JSTransformer/__tests__/Transformer-test.js index 6c9c66446..cdba0b8bd 100644 --- a/packager/react-packager/src/JSTransformer/__tests__/Transformer-test.js +++ b/packager/react-packager/src/JSTransformer/__tests__/Transformer-test.js @@ -2,7 +2,6 @@ jest .dontMock('worker-farm') - .dontMock('q') .dontMock('os') .dontMock('../index'); diff --git a/packager/react-packager/src/Packager/__tests__/Package-test.js b/packager/react-packager/src/Packager/__tests__/Package-test.js index d269eb577..74a2f4379 100644 --- a/packager/react-packager/src/Packager/__tests__/Package-test.js +++ b/packager/react-packager/src/Packager/__tests__/Package-test.js @@ -1,10 +1,6 @@ 'use strict'; -jest - .dontMock('underscore') - .dontMock('../base64-vlq') - .dontMock('source-map') - .dontMock('../Package'); +jest.autoMockOff(); var SourceMapGenerator = require('source-map').SourceMapGenerator; diff --git a/packager/react-packager/src/Server/__tests__/Server-test.js b/packager/react-packager/src/Server/__tests__/Server-test.js index a9951f601..e6020c79b 100644 --- a/packager/react-packager/src/Server/__tests__/Server-test.js +++ b/packager/react-packager/src/Server/__tests__/Server-test.js @@ -3,9 +3,13 @@ jest.setMock('worker-farm', function() { return function() {}; }) .dontMock('q') .dontMock('os') - .dontMock('errno/custom') .dontMock('path') .dontMock('url') + .setMock('timers', { + setImmediate: function(fn) { + return setTimeout(fn, 0); + } + }) .dontMock('../'); var q = require('q'); @@ -75,16 +79,16 @@ describe('processRequest', function() { }); pit('returns sourcemap on request of *.map', function() { - makeRequest( + return makeRequest( requestHandler, 'mybundle.includeRequire.runModule.bundle.map' ).then(function(response) { - expect(response).toEqual('this is the source map'); + expect(response).toEqual('"this is the source map"'); }); }); pit('watches all files in projectRoot', function() { - makeRequest( + return makeRequest( requestHandler, 'mybundle.includeRequire.runModule.bundle' ).then(function(response) { @@ -107,7 +111,7 @@ describe('processRequest', function() { }); pit('invalides files in package when file is updated', function() { - makeRequest( + return makeRequest( requestHandler, 'mybundle.includeRequire.runModule.bundle' ).then(function(response) { diff --git a/packager/react-packager/src/Server/index.js b/packager/react-packager/src/Server/index.js index 14b18c965..accce205a 100644 --- a/packager/react-packager/src/Server/index.js +++ b/packager/react-packager/src/Server/index.js @@ -6,6 +6,7 @@ var declareOpts = require('../lib/declareOpts'); var FileWatcher = require('../FileWatcher'); var Packager = require('../Packager'); var Activity = require('../Activity'); +var setImmediate = require('timers').setImmediate; var q = require('q'); module.exports = Server;