From e11f41b8c763e807a41a69cc7c201d46149cac07 Mon Sep 17 00:00:00 2001 From: Michael Henderson Date: Tue, 17 Apr 2018 14:48:56 -0400 Subject: [PATCH 1/8] Removing react-addons-test-utils; Adding @babel/polyfill to silence es2015 Map constructor warnings; Adding react-test-renderer --- package.json | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/package.json b/package.json index fbee7ac0..7eca5b83 100644 --- a/package.json +++ b/package.json @@ -17,6 +17,7 @@ "lodash": "^4.17.4" }, "devDependencies": { + "@babel/polyfill": "^7.0.0-beta.44", "babel-jest": "^5.2.1", "babel-loader": "^5.3.3", "create-react-class": "15.6.2", @@ -42,9 +43,9 @@ "phantomjs-prebuilt": "^2.1.7", "prop-types": "^15.6.0", "react": "^0.14.3 || ^15.0.1 || ^16.0.0", - "react-addons-test-utils": "^0.14.3 || ^15.0.1", "react-chartist": "^0.10.2", "react-dom": "^0.14.3 || ^15.0.1 || ^16.0.0", + "react-test-renderer": "^16.3.2", "webpack": "1.12.3", "webpack-dev-server": "1.12.1" }, From f4270680d3e31ac50ee7fe57453e86743c5eb84c Mon Sep 17 00:00:00 2001 From: Michael Henderson Date: Tue, 17 Apr 2018 14:49:18 -0400 Subject: [PATCH 2/8] Adding @babel/polyfill to imported karma files --- karma.conf.js | 1 + 1 file changed, 1 insertion(+) diff --git a/karma.conf.js b/karma.conf.js index 2d423fb9..f7639f67 100644 --- a/karma.conf.js +++ b/karma.conf.js @@ -5,6 +5,7 @@ module.exports = function(config) { basePath: '', frameworks: ['jasmine'], files: [ + './node_modules/@babel/polyfill/dist/polyfill.js', './node_modules/phantomjs-polyfill/bind-polyfill.js', './scripts/__tests__/**/*.js' ], From df9657f79674cafedac465af0de85bed6abb9e55 Mon Sep 17 00:00:00 2001 From: Michael Henderson Date: Tue, 17 Apr 2018 14:50:08 -0400 Subject: [PATCH 3/8] Replacing all references to react-addons-test-utils with react-dom/test-utils --- scripts/__tests__/gridFilter-test.js | 6 +- scripts/__tests__/gridPagination-test.js | 2 +- scripts/__tests__/gridRow-test.js | 310 +++++++++++------------ scripts/__tests__/gridSettings-test.js | 2 +- 4 files changed, 160 insertions(+), 160 deletions(-) diff --git a/scripts/__tests__/gridFilter-test.js b/scripts/__tests__/gridFilter-test.js index 9d02d6a1..04624e3c 100644 --- a/scripts/__tests__/gridFilter-test.js +++ b/scripts/__tests__/gridFilter-test.js @@ -1,12 +1,12 @@ var React = require('react'); var createReactClass = require('create-react-class'); -var TestUtils = require('react-addons-test-utils'); +var TestUtils = require('react-dom/test-utils'); var GridFilter = require('../gridFilter.jsx'); describe('GridFilter', function(){ it('calls change filter when clicked', function(){ - var mock = jasmine.createSpy(); + var mock = jasmine.createSpy(); var filter = TestUtils.renderIntoDocument(); var someEvent = { @@ -15,7 +15,7 @@ describe('GridFilter', function(){ } }; - var input = TestUtils.findRenderedDOMComponentWithTag(filter, 'input'); + var input = TestUtils.findRenderedDOMComponentWithTag(filter, 'input'); TestUtils.Simulate.change(input, someEvent); expect(mock.calls.argsFor(0)).toEqual(["hi"]); diff --git a/scripts/__tests__/gridPagination-test.js b/scripts/__tests__/gridPagination-test.js index 32f2d0f1..f7a3bea4 100644 --- a/scripts/__tests__/gridPagination-test.js +++ b/scripts/__tests__/gridPagination-test.js @@ -1,7 +1,7 @@ var React = require('react'); var createReactClass = require('create-react-class'); var GridPagination = require('../gridPagination.jsx'); -var TestUtils = require('react-addons-test-utils'); +var TestUtils = require('react-dom/test-utils'); describe('GridPagination', function(){ it('calls change filter when clicked', function(){ diff --git a/scripts/__tests__/gridRow-test.js b/scripts/__tests__/gridRow-test.js index ea3af301..efa71745 100644 --- a/scripts/__tests__/gridRow-test.js +++ b/scripts/__tests__/gridRow-test.js @@ -3,9 +3,9 @@ var createReactClass = require('create-react-class'); var GridRow = require('../gridRow.jsx'); var ColumnProperties = require('../columnProperties.js'); var RowProperties = require('../rowProperties.js'); -var TestUtils = require('react-addons-test-utils'); +var TestUtils = require('react-dom/test-utils'); - var fakeData = [ + var fakeData = [ { "id": 0, "name": "Mayer Leonard", @@ -30,183 +30,183 @@ var TestUtils = require('react-addons-test-utils'); } ]; - var fakeSubgridData = [ - { - "id": 0, - "name": "Mayer Leonard", + var fakeSubgridData = [ + { + "id": 0, + "name": "Mayer Leonard", "address": { "city": "Kapowsin", "state": "Hawaii" }, - "country": "United Kingdom", - "company": "Ovolo", - "favoriteNumber": 7, - "children": [ - { - "id": 273, - "name": "Hull Wade", + "country": "United Kingdom", + "company": "Ovolo", + "favoriteNumber": 7, + "children": [ + { + "id": 273, + "name": "Hull Wade", "address": { "city": "Monument", "state": "Nebraska" }, - "country": "Cyprus", - "company": "Indexia", - "favoriteNumber": 10, - "children":[ - { - "id": 5, - "name": "Ola Fernandez", + "country": "Cyprus", + "company": "Indexia", + "favoriteNumber": 10, + "children":[ + { + "id": 5, + "name": "Ola Fernandez", "address": { "city": "Deltaville", "state": "Delaware" }, - "country": "Virgin Islands (US)", - "company": "Pawnagra", - "favoriteNumber": 7 - }, - { - "id": 6, - "name": "Park Carr", + "country": "Virgin Islands (US)", + "company": "Pawnagra", + "favoriteNumber": 7 + }, + { + "id": 6, + "name": "Park Carr", "address": { "city": "Welda", "state": "Kentucky" }, - "country": "Sri Lanka", - "company": "Cosmetex", - "favoriteNumber": 7 - }, - { - "id": 7, - "name": "Laverne Johnson", + "country": "Sri Lanka", + "company": "Cosmetex", + "favoriteNumber": 7 + }, + { + "id": 7, + "name": "Laverne Johnson", "address": { "city": "Rosburg", "state": "New Mexico" }, - "country": "Croatia", - "company": "Housedown", - "favoriteNumber": 9 - } - ] - }, - { - "id": 274, - "name": "Blanca Sheppard", + "country": "Croatia", + "company": "Housedown", + "favoriteNumber": 9 + } + ] + }, + { + "id": 274, + "name": "Blanca Sheppard", "address": { "city": "Wadsworth", "state": "West Virginia" }, - "country": "Nicaragua", - "company": "Gogol", - "favoriteNumber": 7 - }, - { - "id": 275, - "name": "Stella Luna", + "country": "Nicaragua", + "company": "Gogol", + "favoriteNumber": 7 + }, + { + "id": 275, + "name": "Stella Luna", "address": { "city": "Dubois", "state": "Oregon" }, - "country": "Czech Republic", - "company": "Intrawear", - "favoriteNumber": 1 - } - ] - }, - { - "id": 1, - "name": "Koch Becker", + "country": "Czech Republic", + "company": "Intrawear", + "favoriteNumber": 1 + } + ] + }, + { + "id": 1, + "name": "Koch Becker", "address": { "city": "Johnsonburg", "state": "New Jersey" }, - "country": "Madagascar", - "company": "Eventage", - "favoriteNumber": 2, - "children": [ - { - "id": 273, - "name": "Hull Wade", + "country": "Madagascar", + "company": "Eventage", + "favoriteNumber": 2, + "children": [ + { + "id": 273, + "name": "Hull Wade", "address": { "city": "Monument", "state": "Nebraska" }, - "country": "Cyprus", - "company": "Indexia", - "favoriteNumber": 10 - }, - { - "id": 274, - "name": "Blanca Sheppard", + "country": "Cyprus", + "company": "Indexia", + "favoriteNumber": 10 + }, + { + "id": 274, + "name": "Blanca Sheppard", "address": { "city": "Wadsworth", "state": "West Virginia" }, - "country": "Nicaragua", - "company": "Gogol", - "favoriteNumber": 7 - }, - { - "id": 275, - "name": "Stella Luna", + "country": "Nicaragua", + "company": "Gogol", + "favoriteNumber": 7 + }, + { + "id": 275, + "name": "Stella Luna", "address": { "city": "Dubois", "state": "Oregon" }, - "country": "Czech Republic", - "company": "Intrawear", - "favoriteNumber": 1 - } - ] - }, - { - "id": 2, - "name": "Lowery Hopkins", + "country": "Czech Republic", + "company": "Intrawear", + "favoriteNumber": 1 + } + ] + }, + { + "id": 2, + "name": "Lowery Hopkins", "address": { "city": "Blanco", "state": "Arizona" }, - "country": "Ukraine", - "company": "Comtext", - "favoriteNumber": 3, - "children": [ - { - "id": 273, - "name": "Hull Wade", + "country": "Ukraine", + "company": "Comtext", + "favoriteNumber": 3, + "children": [ + { + "id": 273, + "name": "Hull Wade", "address": { "city": "Monument", "state": "Nebraska" }, - "country": "Cyprus", - "company": "Indexia", - "favoriteNumber": 10 - }, - { - "id": 274, - "name": "Blanca Sheppard", + "country": "Cyprus", + "company": "Indexia", + "favoriteNumber": 10 + }, + { + "id": 274, + "name": "Blanca Sheppard", "address": { "city": "Wadsworth", "state": "West Virginia" }, - "country": "Nicaragua", - "company": "Gogol", - "favoriteNumber": 7 - }, - { - "id": 275, - "name": "Stella Luna", + "country": "Nicaragua", + "company": "Gogol", + "favoriteNumber": 7 + }, + { + "id": 275, + "name": "Stella Luna", "address": { "city": "Dubois", "state": "Oregon" }, - "country": "Czech Republic", - "company": "Intrawear", - "favoriteNumber": 1 - } - ] - }]; + "country": "Czech Republic", + "company": "Intrawear", + "favoriteNumber": 1 + } + ] + }]; describe('GridRow', function(){ - it('does not call toggleChildren if no child rows are specified', function(){ + it('does not call toggleChildren if no child rows are specified', function(){ var columnSettings = new ColumnProperties( ['id', 'name', 'address.city', 'address.state', 'country', 'company', 'favoriteNumber'], [], @@ -216,16 +216,16 @@ describe('GridRow', function(){ ); var rowSettings = new RowProperties(); var multipleSelectOptions = { - isMultipleSelection: false, - toggleSelectAll: function(){}, - getIsSelectAllChecked: function(){}, + isMultipleSelection: false, + toggleSelectAll: function(){}, + getIsSelectAllChecked: function(){}, - toggleSelectRow: function(){}, - getSelectedRowIds: function(){}, + toggleSelectRow: function(){}, + getSelectedRowIds: function(){}, getIsRowChecked: function(){} - }; + }; - var mock = jasmine.createSpy(); + var mock = jasmine.createSpy(); const FakeTable = createReactClass({ render() { @@ -241,25 +241,25 @@ describe('GridRow', function(){ } }); - var row = TestUtils.renderIntoDocument(); - expect(TestUtils.isCompositeComponent(row)).toBe(true); + var row = TestUtils.renderIntoDocument(); + expect(TestUtils.isCompositeComponent(row)).toBe(true); - expect(mock.calls.count()).toEqual(0); - var tr = TestUtils.findRenderedDOMComponentWithTag(row, 'tr'); - expect(tr.length).not.toBe(null); + expect(mock.calls.count()).toEqual(0); + var tr = TestUtils.findRenderedDOMComponentWithTag(row, 'tr'); + expect(tr.length).not.toBe(null); - var td = TestUtils.scryRenderedDOMComponentsWithTag(row, 'td'); + var td = TestUtils.scryRenderedDOMComponentsWithTag(row, 'td'); - expect(td.length).toBeGreaterThan(0); - var first = td[0]; + expect(td.length).toBeGreaterThan(0); + var first = td[0]; - TestUtils.Simulate.click(first); + TestUtils.Simulate.click(first); - expect(mock.calls.count()).toEqual(0); - }) + expect(mock.calls.count()).toEqual(0); + }) - it('calls toggleChildren if child rows are specified', function(){ + it('calls toggleChildren if child rows are specified', function(){ var columnSettings = new ColumnProperties( ['id', 'name', 'address.city', 'address.state', 'country', 'company', 'favoriteNumber'], [], @@ -268,16 +268,16 @@ describe('GridRow', function(){ [] ); var multipleSelectOptions = { - isMultipleSelection: false, - toggleSelectAll: function(){}, - getIsSelectAllChecked: function(){}, + isMultipleSelection: false, + toggleSelectAll: function(){}, + getIsSelectAllChecked: function(){}, - toggleSelectRow: function(){}, - getSelectedRowIds: function(){}, + toggleSelectRow: function(){}, + getSelectedRowIds: function(){}, getIsRowChecked: function(){} - }; + }; - var mock = jasmine.createSpy(); + var mock = jasmine.createSpy(); const FakeTable = createReactClass({ render() { @@ -293,19 +293,19 @@ describe('GridRow', function(){ } }); - const row2 = TestUtils.renderIntoDocument(); - expect(TestUtils.isCompositeComponent(row2)).toBe(true); + const row2 = TestUtils.renderIntoDocument(); + expect(TestUtils.isCompositeComponent(row2)).toBe(true); - expect(mock.calls.count()).toEqual(0); - var tr = TestUtils.findRenderedDOMComponentWithTag(row2, 'tr'); - expect(tr.length).not.toBe(null); - var td = TestUtils.scryRenderedDOMComponentsWithTag(row2, 'td'); - - expect(td.length).toBeGreaterThan(0); - var first = td[0]; + expect(mock.calls.count()).toEqual(0); + var tr = TestUtils.findRenderedDOMComponentWithTag(row2, 'tr'); + expect(tr.length).not.toBe(null); + var td = TestUtils.scryRenderedDOMComponentsWithTag(row2, 'td'); + + expect(td.length).toBeGreaterThan(0); + var first = td[0]; - TestUtils.Simulate.click(first); + TestUtils.Simulate.click(first); - expect(mock.calls.count()).toEqual(1); - }) + expect(mock.calls.count()).toEqual(1); + }) }); diff --git a/scripts/__tests__/gridSettings-test.js b/scripts/__tests__/gridSettings-test.js index ec7575cd..df9f0081 100644 --- a/scripts/__tests__/gridSettings-test.js +++ b/scripts/__tests__/gridSettings-test.js @@ -1,7 +1,7 @@ var React = require('react'); var createReactClass = require('create-react-class'); var GridSettings = require('../gridSettings.jsx'); -var TestUtils = require('react-addons-test-utils'); +var TestUtils = require('react-dom/test-utils'); describe('GridSettings', function() { From 7f59c2a2af8a7fdc156b7d9a441ecb65e634aaf2 Mon Sep 17 00:00:00 2001 From: Michael Henderson Date: Tue, 17 Apr 2018 14:51:28 -0400 Subject: [PATCH 4/8] Fixing reference to createRenderer, which is now in react-test-renderer/shallow package; Replacing all references to react-addons-test-utils with react-dom/test-utils --- scripts/__tests__/gridTitle-test.js | 62 +++++++++++++++-------------- 1 file changed, 32 insertions(+), 30 deletions(-) diff --git a/scripts/__tests__/gridTitle-test.js b/scripts/__tests__/gridTitle-test.js index 6ce27b38..5ec1ee06 100644 --- a/scripts/__tests__/gridTitle-test.js +++ b/scripts/__tests__/gridTitle-test.js @@ -1,46 +1,48 @@ var React = require('react'); var createReactClass = require('create-react-class'); var GridTitle = require('../gridTitle.jsx'); -var TestUtils = require('react-addons-test-utils'); +var TestUtils = require('react-dom/test-utils'); +var ShallowRenderer = require('react-test-renderer/shallow'); var ColumnProperties = require('../columnProperties.js'); describe('GridTitle', function() { - var title; - var columns; - var columnSettings; - var sortObject; - var multipleSelectOptions; - var multipleSelectSettings; + var title; + var columns; + var columnSettings; + var sortObject; + var multipleSelectOptions; + var multipleSelectSettings; - beforeEach(function(){ - columns = ["one", "two", "three"]; - columnSettings = new ColumnProperties(columns, [], "children", [], []); - sortObject = { - enableSort: true, - changeSort: null, - sortColumn: "", - sortDefaultComponent: null, - sortAscendingClassName: "", - sortDescendingClassName: "", - sortAscendingComponent: null, - sortDescendingComponent: null + beforeEach(function() { + columns = ["one", "two", "three"]; + columnSettings = new ColumnProperties(columns, [], "children", [], []); + sortObject = { + enableSort: true, + changeSort: null, + sortColumn: "", + sortDefaultComponent: null, + sortAscendingClassName: "", + sortDescendingClassName: "", + sortAscendingComponent: null, + sortDescendingComponent: null }; + multipleSelectSettings = { - isMultipleSelection: false, - toggleSelectAll: function(){}, - getIsSelectAllChecked: function(){}, + isMultipleSelection: false, + toggleSelectAll: function(){}, + getIsSelectAllChecked: function(){}, - toggleSelectRow: function(){}, - getSelectedRowIds: function(){}, + toggleSelectRow: function(){}, + getSelectedRowIds: function(){}, getIsRowChecked: function(){} - }; + }; - var renderer = TestUtils.createRenderer(); + var renderer = new ShallowRenderer(); renderer.render(); title = renderer.getRenderOutput(); - }); - - it('calls sortDefaultComponent in table init', function(){ + }); + + it('calls sortDefaultComponent in table init', function(){ expect(title.type).toBe('thead'); const headings = title.props.children.props.children.length; expect(headings).toEqual(3); @@ -49,5 +51,5 @@ describe('GridTitle', function() { var heading = headings[i]; expect(heading.props.children[1]).toEqual(sortObject['sortDefaultComponent']); } - }); + }); }); From 704c103957b24c84b8bb1225dc7507fa1467c8d4 Mon Sep 17 00:00:00 2001 From: Michael Henderson Date: Tue, 17 Apr 2018 14:51:49 -0400 Subject: [PATCH 5/8] Replacing all references to react-addons-test-utils with react-dom/test-utils; Commenting out an unnecessary console.log --- scripts/__tests__/griddle-test.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/scripts/__tests__/griddle-test.js b/scripts/__tests__/griddle-test.js index 30b077eb..0bc83c4a 100644 --- a/scripts/__tests__/griddle-test.js +++ b/scripts/__tests__/griddle-test.js @@ -2,7 +2,7 @@ var React = require('react'); var createReactClass = require('create-react-class'); var ReactDOM = require('react-dom'); var Griddle = require('../griddle.jsx'); -var TestUtils = require('react-addons-test-utils'); +var TestUtils = require('react-dom/test-utils'); var assign = require('lodash/assign'); var SomeCustomComponent = createReactClass({ @@ -352,7 +352,7 @@ describe('Griddle', function() { it('sets sort direction correctly', function(){ expect(grid.state.sortColumn).toBeFalsy(); - console.log(grid.state.sortColumn); + // console.log(grid.state.sortColumn); grid.changeSort("address.state"); expect(grid.state.sortColumn).toEqual("address.state"); From f96ff6504628427db96a5f2ade96660e0c5830a9 Mon Sep 17 00:00:00 2001 From: Michael Henderson Date: Tue, 17 Apr 2018 15:16:59 -0400 Subject: [PATCH 6/8] Dropping support in devDependencies for react/react-dom 0.14.x and bumping up the minimum supported versions to 15.5.4 --- package.json | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/package.json b/package.json index 7eca5b83..a34f4ee5 100644 --- a/package.json +++ b/package.json @@ -42,10 +42,10 @@ "phantomjs-polyfill": "0.0.1", "phantomjs-prebuilt": "^2.1.7", "prop-types": "^15.6.0", - "react": "^0.14.3 || ^15.0.1 || ^16.0.0", + "react": "^15.5.4 || ^16.0.0", "react-chartist": "^0.10.2", - "react-dom": "^0.14.3 || ^15.0.1 || ^16.0.0", - "react-test-renderer": "^16.3.2", + "react-dom": "^15.5.4 || ^16.0.0", + "react-test-renderer": "^15.5.4 || ^16.3.2", "webpack": "1.12.3", "webpack-dev-server": "1.12.1" }, From 66ede103e69bbac1061c114604541edb84e01be4 Mon Sep 17 00:00:00 2001 From: Michael Henderson Date: Tue, 17 Apr 2018 16:31:51 -0400 Subject: [PATCH 7/8] Trying to resolve Node 4 and lower issues: upgrading react-chartist in devDependencies to a version that supports react 16.x, and bumping react-test-renderer 16.x support back down to ^16.0.0 --- package.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/package.json b/package.json index a34f4ee5..0f284446 100644 --- a/package.json +++ b/package.json @@ -43,9 +43,9 @@ "phantomjs-prebuilt": "^2.1.7", "prop-types": "^15.6.0", "react": "^15.5.4 || ^16.0.0", - "react-chartist": "^0.10.2", + "react-chartist": "^0.13.1", "react-dom": "^15.5.4 || ^16.0.0", - "react-test-renderer": "^15.5.4 || ^16.3.2", + "react-test-renderer": "^15.5.4 || ^16.0.0", "webpack": "1.12.3", "webpack-dev-server": "1.12.1" }, From 3fe70a51445a34b39876663c5a8a2cde9bb7485d Mon Sep 17 00:00:00 2001 From: Michael Henderson Date: Tue, 17 Apr 2018 16:59:15 -0400 Subject: [PATCH 8/8] bumping react-chartist back down to ^0.10.1 to resolve a regression --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 0f284446..990f2ef2 100644 --- a/package.json +++ b/package.json @@ -43,7 +43,7 @@ "phantomjs-prebuilt": "^2.1.7", "prop-types": "^15.6.0", "react": "^15.5.4 || ^16.0.0", - "react-chartist": "^0.13.1", + "react-chartist": "^0.10.1", "react-dom": "^15.5.4 || ^16.0.0", "react-test-renderer": "^15.5.4 || ^16.0.0", "webpack": "1.12.3",