From a4fdb4180016a76545ada1f3888a9ca609637f27 Mon Sep 17 00:00:00 2001 From: Demis Bellot Date: Wed, 8 Nov 2017 03:22:03 -0500 Subject: [PATCH] Update tests to support React 16 --- MyApp/MyApp.csproj | 2 ++ MyApp/package-lock.json | 61 ++++++++++++++++------------------ MyApp/package.json | 11 ++++-- MyApp/src/home/Hello.test.tsx | 8 ++--- MyApp/src/test.setup.js | 4 +++ MyApp/src/test.shim.js | 3 ++ MyApp/webpack.config.vendor.js | 2 +- 7 files changed, 50 insertions(+), 41 deletions(-) create mode 100644 MyApp/src/test.setup.js create mode 100644 MyApp/src/test.shim.js diff --git a/MyApp/MyApp.csproj b/MyApp/MyApp.csproj index 314dfe5..bf48302 100644 --- a/MyApp/MyApp.csproj +++ b/MyApp/MyApp.csproj @@ -91,6 +91,8 @@ Designer + + Web.config diff --git a/MyApp/package-lock.json b/MyApp/package-lock.json index fe4861f..84901b8 100644 --- a/MyApp/package-lock.json +++ b/MyApp/package-lock.json @@ -2037,8 +2037,7 @@ "define-properties": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.2.tgz", - "integrity": "sha1-g6c/L+pWmJj7c3GTyPhzyvbUXJQ=", - "dev": true + "integrity": "sha1-g6c/L+pWmJj7c3GTyPhzyvbUXJQ=" }, "define-property": { "version": "1.0.0", @@ -2463,11 +2462,21 @@ "dev": true }, "enzyme": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/enzyme/-/enzyme-3.1.0.tgz", - "integrity": "sha1-2MqECFeQ+87G7UC63RRHj67kwlo=", + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/enzyme/-/enzyme-3.1.1.tgz", + "integrity": "sha512-+Lj90HE3c6Jgtpha3kYfB/mTdD1GNWqSh7q8AcA8d+/CRJojRT+3yABHqKpfRx71qeEACjuvXU3Eu5UP//p/mA==", "dev": true }, + "enzyme-adapter-react-16": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/enzyme-adapter-react-16/-/enzyme-adapter-react-16-1.0.4.tgz", + "integrity": "sha512-MCjuwrCE5yhTJxaBhd6zTVdm8T01Ydjys5JaFm9ILkxP7oYb3N4i+nytKlzhI7rVouPdAuUVI8mO5UcEbEFAmw==" + }, + "enzyme-adapter-utils": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/enzyme-adapter-utils/-/enzyme-adapter-utils-1.1.1.tgz", + "integrity": "sha512-XU41nEiTl7O2JJvRA7JoCMhkDYRW9mQAgiy67Yz9BqTiRP/ldwuJYX8Gkom2LlihKIb9wy96IDuayR3RQspSNg==" + }, "errno": { "version": "0.1.4", "resolved": "https://registry.npmjs.org/errno/-/errno-0.1.4.tgz", @@ -2483,14 +2492,12 @@ "es-abstract": { "version": "1.9.0", "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.9.0.tgz", - "integrity": "sha512-kk3IJoKo7A3pWJc0OV8yZ/VEX2oSUytfekrJiqoxBlKJMFAJVJVpGdHClCCTdv+Fn2zHfpDHHIelMFhZVfef3Q==", - "dev": true + "integrity": "sha512-kk3IJoKo7A3pWJc0OV8yZ/VEX2oSUytfekrJiqoxBlKJMFAJVJVpGdHClCCTdv+Fn2zHfpDHHIelMFhZVfef3Q==" }, "es-to-primitive": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.1.1.tgz", - "integrity": "sha1-RTVSSKiJeQNLZ5Lhm7gfK3l13Q0=", - "dev": true + "integrity": "sha1-RTVSSKiJeQNLZ5Lhm7gfK3l13Q0=" }, "es5-ext": { "version": "0.10.35", @@ -3085,8 +3092,7 @@ "foreach": { "version": "2.0.5", "resolved": "https://registry.npmjs.org/foreach/-/foreach-2.0.5.tgz", - "integrity": "sha1-C+4AUBiusmDQo6865ljdATbsG5k=", - "dev": true + "integrity": "sha1-C+4AUBiusmDQo6865ljdATbsG5k=" }, "forever-agent": { "version": "0.6.1", @@ -3802,8 +3808,7 @@ "function-bind": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", - "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", - "dev": true + "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==" }, "function.prototype.name": { "version": "1.0.3", @@ -4254,8 +4259,7 @@ "has": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/has/-/has-1.0.1.tgz", - "integrity": "sha1-hGFzP1OLCDfJNh45qauelwTcLyg=", - "dev": true + "integrity": "sha1-hGFzP1OLCDfJNh45qauelwTcLyg=" }, "has-ansi": { "version": "2.0.0", @@ -4782,8 +4786,7 @@ "is-callable": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.1.3.tgz", - "integrity": "sha1-hut1OSgF3cM69xySoO7fdO52BLI=", - "dev": true + "integrity": "sha1-hut1OSgF3cM69xySoO7fdO52BLI=" }, "is-ci": { "version": "1.0.10", @@ -4822,8 +4825,7 @@ "is-date-object": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.1.tgz", - "integrity": "sha1-mqIOtq7rv/d/vTPnTKAbM1gdOhY=", - "dev": true + "integrity": "sha1-mqIOtq7rv/d/vTPnTKAbM1gdOhY=" }, "is-descriptor": { "version": "1.0.1", @@ -4994,8 +4996,7 @@ "is-regex": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.0.4.tgz", - "integrity": "sha1-VRdIm1RwkbCTDglWVM7SXul+lJE=", - "dev": true + "integrity": "sha1-VRdIm1RwkbCTDglWVM7SXul+lJE=" }, "is-relative": { "version": "0.2.1", @@ -5029,8 +5030,7 @@ "is-symbol": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.1.tgz", - "integrity": "sha1-PMWfAAJRlLarLjjbrmaJJWtmBXI=", - "dev": true + "integrity": "sha1-PMWfAAJRlLarLjjbrmaJJWtmBXI=" }, "is-tar": { "version": "1.0.0", @@ -5781,8 +5781,7 @@ "lodash": { "version": "4.17.4", "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.4.tgz", - "integrity": "sha1-eCA6TRwyiuHYbcpkYONptX9AVa4=", - "dev": true + "integrity": "sha1-eCA6TRwyiuHYbcpkYONptX9AVa4=" }, "lodash._basecopy": { "version": "3.0.1", @@ -6552,8 +6551,7 @@ "object-keys": { "version": "1.0.11", "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.0.11.tgz", - "integrity": "sha1-xUYBd4rVYPEULODgG8yotW0TQm0=", - "dev": true + "integrity": "sha1-xUYBd4rVYPEULODgG8yotW0TQm0=" }, "object-visit": { "version": "1.0.1", @@ -6564,8 +6562,7 @@ "object.assign": { "version": "4.0.4", "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.0.4.tgz", - "integrity": "sha1-scnMBE7xuf5jYG/BQau7MuFHMMw=", - "dev": true + "integrity": "sha1-scnMBE7xuf5jYG/BQau7MuFHMMw=" }, "object.defaults": { "version": "1.1.0", @@ -6602,8 +6599,7 @@ "object.values": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.0.4.tgz", - "integrity": "sha1-5STaCbT2b/Bd9FdUbscqyZ8TBpo=", - "dev": true + "integrity": "sha1-5STaCbT2b/Bd9FdUbscqyZ8TBpo=" }, "obuf": { "version": "1.1.1", @@ -8901,8 +8897,7 @@ "react-test-renderer": { "version": "16.0.0", "resolved": "https://registry.npmjs.org/react-test-renderer/-/react-test-renderer-16.0.0.tgz", - "integrity": "sha1-n+e4MI8vcfKfw1bUECCG8THJyxU=", - "dev": true + "integrity": "sha1-n+e4MI8vcfKfw1bUECCG8THJyxU=" }, "read-all-stream": { "version": "3.1.0", diff --git a/MyApp/package.json b/MyApp/package.json index 327168e..44bfead 100644 --- a/MyApp/package.json +++ b/MyApp/package.json @@ -13,7 +13,7 @@ "test": "jest", "test-watch": "jest --watch", "test-coverage": "jest --coverage", - "update-dtos": "cd src && typescript-ref" + "dtos-update": "cd src && typescript-ref" }, "jest": { "globals": { @@ -31,11 +31,16 @@ "moduleNameMapper": { "^.+\\.(css|scss|sass)$": "identity-obj-proxy", "^.+\\.(jpg|jpeg|png|gif|eot|otf|webp|svg|ttf|woff|woff2|mp4|webm|wav|mp3|m4a|aac|oga)$": "/src/test.fileMock.js" - } + }, + "setupFiles": [ + "/src/test.shim.js", + "/src/test.setup.js" + ] }, "dependencies": { "bootstrap": "^4.0.0-beta.2", "classnames": "^2.2.5", + "enzyme-adapter-react-16": "^1.0.4", "es6-shim": "^0.35.3", "font-awesome": "^4.7.0", "react": "^16.0.0", @@ -56,7 +61,7 @@ "clean-webpack-plugin": "^0.1.17", "copy-webpack-plugin": "^4.2.0", "css-loader": "^0.28.7", - "enzyme": "^3.1.0", + "enzyme": "^3.1.1", "extract-text-webpack-plugin": "^3.0.2", "file-loader": "^1.1.5", "gulp": "^3.9.1", diff --git a/MyApp/src/home/Hello.test.tsx b/MyApp/src/home/Hello.test.tsx index 8c3f5ab..f4f4465 100644 --- a/MyApp/src/home/Hello.test.tsx +++ b/MyApp/src/home/Hello.test.tsx @@ -12,8 +12,8 @@ describe('', () => { expect(el.find('h3').text()).toBe(""); el.setState({ result: 'A' }, () => { - expect(el.find('h3').text()).toBe("A"); - done(); + expect(el.update().find('h3.result').text()).toBe("A"); + done(); }); }); @@ -24,7 +24,7 @@ describe('', () => { await (el.instance() as Hello).nameChanged('A'); - expect(el.find('h3').text()).toBe("Hello, A!"); + expect(el.update().find('h3').text()).toBe("Hello, A!"); }); it ('Updates heading on keyDown', done => { @@ -35,7 +35,7 @@ describe('', () => { el.find('input').simulate('change', { target: { value: 'A' } }); setTimeout(() => { - expect(el.find('h3').text()).toBe("Hello, A!"); + expect(el.update().find('h3').text()).toBe("Hello, A!"); done(); }, 100); }); diff --git a/MyApp/src/test.setup.js b/MyApp/src/test.setup.js new file mode 100644 index 0000000..7eac118 --- /dev/null +++ b/MyApp/src/test.setup.js @@ -0,0 +1,4 @@ +var enzyme = require('enzyme'); +var Adapter = require('enzyme-adapter-react-16'); + +enzyme.configure({ adapter: new Adapter() }); \ No newline at end of file diff --git a/MyApp/src/test.shim.js b/MyApp/src/test.shim.js new file mode 100644 index 0000000..deda35a --- /dev/null +++ b/MyApp/src/test.shim.js @@ -0,0 +1,3 @@ +global.requestAnimationFrame = function(callback) { + setTimeout(callback, 0); +}; \ No newline at end of file diff --git a/MyApp/webpack.config.vendor.js b/MyApp/webpack.config.vendor.js index b4c1c35..0f43b57 100644 --- a/MyApp/webpack.config.vendor.js +++ b/MyApp/webpack.config.vendor.js @@ -33,7 +33,7 @@ module.exports = (env) => { }, devtool: "source-map", output: { - path: path.join(__dirname, 'wwwroot', 'dist'), + path: root('wwwroot/dist'), publicPath: 'dist/', filename: '[name].dll.js', library: '[name]_[hash]',