Skip to content

Commit 1ae85fd

Browse files
Make test process less opaque
* Add additiona comments * File names with more meaning * Add initial DOM testing testing (this should replace the manual test writing that @interactivellama set up before
1 parent 5310c6c commit 1ae85fd

14 files changed

+415
-32
lines changed

.eslintignore

+3-3
Original file line numberDiff line numberDiff line change
@@ -10,12 +10,12 @@ package-lock.json
1010

1111
# React Storybook
1212
storybook/
13-
storybook-image-snapshots/
13+
storybook-based-tests/
1414

1515
# Publishing and dist build
1616
.tmp*
1717

18-
# For build server. A copy of itself is
18+
# For build server. A copy of itself is
1919
design-system-react
2020

2121
# Allow custom pre-commit
@@ -312,4 +312,4 @@ $RECYCLE.BIN/
312312
*.msp
313313

314314
# Windows shortcuts
315-
*.lnk
315+
*.lnk

.gitignore

+1-1
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ package-lock.json
88

99
# React Storybook
1010
storybook/
11-
storybook-image-snapshots/
11+
storybook-based-tests/
1212

1313
# Publishing and dist build
1414
.tmp*
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
import { configure } from '@storybook/react';
22

33
function loadStories() {
4-
require('../components/storybook-stories-image-snapshots'); // eslint-disable-line global-require
4+
require('../components/story-based-tests.js'); // eslint-disable-line global-require
55
}
66

77
configure(loadStories, module);
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,23 @@
1-
// Sample stories for image snapshot testing
2-
// Components commented twice are not currently
3-
// compatible with jest-image-snapshot, most are
4-
// issues with a DOM not being present.
1+
/*
2+
* STORY-BASED SNAPSHOT TESTING
3+
*
4+
* Please add stories below to use Storybook Stories (http://localhost:9001)
5+
* as the basis for DOM and image snapshots to allow markup and visual regression
6+
* testing. All new components should be added below to enable DOM and image
7+
* snapshots. With enough Storybook story examples, these two methods should be
8+
* significant to fully test components with the exception of callback testing.
9+
* Pleaes test callback props with the Mocha framework (http://localhost:8001).
10+
* `tests/story-based-tests.snapshot-test.js` looks at this file and uses the
11+
* following stories to create snapshots.
12+
*
13+
* This library is transitioning to story-based testing, but not all components
14+
* are able to be tested without a DOM. This file should eventually go away and
15+
* `storybook-stories.js` used for the basis of snapshot creation.
16+
*/
517

618
export Blank from '../tests/initial-blank-stories';
719
export Accordion from '../components/accordion/__docs__/storybook-stories';
820
// export Alert from '../components/alert/__docs__/storybook-stories';
9-
// // export AppLauncher from '../components/app-launcher/__docs__/storybook-stories';
1021
// export Avatar from '../components/avatar/__docs__/storybook-stories';
1122
// export Breadcrumb from '../components/breadcrumb/__docs__/storybook-stories';
1223
// export Button from '../components/button/__docs__/storybook-stories';
@@ -16,35 +27,43 @@ export Accordion from '../components/accordion/__docs__/storybook-stories';
1627
// export Checkbox from '../components/forms/checkbox/__docs__/storybook-stories';
1728
// export Combobox from '../components/combobox/__docs__/storybook-stories';
1829
// export Filter from '../components/filter/__docs__/storybook-stories';
19-
// // export GlobalNavigationBar from '../components/global-navigation-bar/__docs__/storybook-stories';
2030
// export DataTable from '../components/data-table/__docs__/storybook-stories';
21-
// // export DatePicker from '../components/date-picker/__docs__/storybook-stories';
2231
// export Dropdown from '../components/menu-dropdown/__docs__/storybook-stories';
23-
// // export IconSettings from '../components/icon-settings/__docs__/storybook-stories';
2432
// export Input from '../components/forms/input/__docs__/storybook-stories';
2533
// export Teaxtarea from '../components/forms/textarea/__docs__/storybook-stories';
2634
// export InlineInput from '../components/forms/input/__docs__/inline/storybook-stories';
2735
// export Search from '../components/forms/input/__docs__/search/storybook-stories';
28-
// // export GlobalHeader from '../components/global-header/__docs__/storybook-stories';
2936
// export Icon from '../components/icon/__docs__/storybook-stories';
3037
// export Lookup from '../components/lookup/__docs__/storybook-stories';
3138
// export MediaObject from '../components/media-object/__docs__/storybook-stories';
32-
// // export Modal from '../components/modal/__docs__/storybook-stories';
3339
// export Navigation from '../components/navigation/__docs__/storybook-stories';
34-
// // export Notification from '../components/notification/__docs__/storybook-stories';
3540
// export PageHeader from '../components/page-header/__docs__/storybook-stories';
36-
// // export Panel from '../components/panel/__docs__/storybook-stories';
3741
// export Pill from '../components/pill/__docs__/storybook-stories';
38-
// // export Popover from '../components/popover/__docs__/storybook-stories';
39-
// // export ProgressIndicator from '../components/progress-indicator/__docs__/storybook-stories';
4042
// export ProgressRing from '../components/progress-ring/__docs__/storybook-stories';
41-
// // export Picklist from '../components/menu-picklist/__docs__/storybook-stories';
4243
// export RadioGroup from '../components/radio-group/__docs__/storybook-stories';
4344
// export RadioButtonGroup from '../components/radio-button-group/__docs__/storybook-stories';
4445
// export SplitView from '../components/split-view/__docs__/storybook-stories';
45-
// // export Spinner from '../components/spinner/__docs__/storybook-stories';
4646
// export Tabs from '../components/tabs/__docs__/storybook-stories';
47-
// // export TimePicker from '../components/time-picker/__docs__/storybook-stories';
4847
// export Toast from '../components/toast/__docs__/storybook-stories';
4948
// export Tooltip from '../components/tooltip/__docs__/storybook-stories';
5049
// export Tree from '../components/tree/__docs__/storybook-stories';
50+
51+
/*
52+
* The following components are not compatible Jest testing because
53+
* need a real DOM. These components should be updated to allow testing
54+
* with Jest. This is typically done by gaurding references to `document`.
55+
*/
56+
57+
// export AppLauncher from '../components/app-launcher/__docs__/storybook-stories';
58+
// export GlobalNavigationBar from '../components/global-navigation-bar/__docs__/storybook-stories';
59+
// export DatePicker from '../components/date-picker/__docs__/storybook-stories';
60+
// export IconSettings from '../components/icon-settings/__docs__/storybook-stories';
61+
// export GlobalHeader from '../components/global-header/__docs__/storybook-stories';
62+
// export Modal from '../components/modal/__docs__/storybook-stories';
63+
// export Notification from '../components/notification/__docs__/storybook-stories';
64+
// export Panel from '../components/panel/__docs__/storybook-stories';
65+
// export Popover from '../components/popover/__docs__/storybook-stories';
66+
// export ProgressIndicator from '../components/progress-indicator/__docs__/storybook-stories';
67+
// export Picklist from '../components/menu-picklist/__docs__/storybook-stories';
68+
// export Spinner from '../components/spinner/__docs__/storybook-stories';
69+
// export TimePicker from '../components/time-picker/__docs__/storybook-stories';

components/storybook-stories.js

+11-3
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,14 @@
1-
// In addition to this file, please add new components
2-
// to storybook-stories-image-snapshots.js to enable
3-
// image snapshot testing
1+
/*
2+
* STORY-BASED EXAMPLES
3+
*
4+
* Please add stories below to use Storybook Stories (http://localhost:9001)
5+
* as the basis for manual review and a development sandbox. New components
6+
* should also be added to `story-based-tests.jsx` in order to automatically
7+
* add DOM and image snapshots. With enough Storybook story examples, these
8+
* two methods should be significant to fully test components with the
9+
* exception of callback testing. Pleaes test callback props with the Mocha
10+
* framework (http://localhost:8001).
11+
*/
412

513
export Accordion from '../components/accordion/__docs__/storybook-stories';
614
export Alert from '../components/alert/__docs__/storybook-stories';

package.json

+2-2
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@
2020
"scripts": {
2121
"build-docs": "./node_modules/.bin/babel-node ./scripts/build-docs.js",
2222
"build-storybook": "build-storybook -o ./storybook",
23-
"build-storybook-image-test": "build-storybook -o ./storybook-image-snapshots -c ./.storybook-image-snapshots",
23+
"build-storybook-for-tests": "build-storybook -o ./storybook-based-tests -c ./.storybook-based-tests",
2424
"dist": "scripts/dist.sh",
2525
"format": "./node_modules/.bin/prettier-eslint --write \"**/*.{js,jsx}\"",
2626
"heroku-prebuild": "./scripts/heroku-prebuild.sh",
@@ -35,7 +35,7 @@
3535
"publish-to-upstream": "./node_modules/.bin/babel-node scripts/publish-to-git.js --remote=upstream",
3636
"release-patch": "./node_modules/.bin/babel-node scripts/release.js --release=patch",
3737
"release-minor": "./node_modules/.bin/babel-node scripts/release.js --release=minor",
38-
"snapshot-test": "npm run build-storybook-image-test && ./node_modules/.bin/jest",
38+
"snapshot-test": "npm run build-storybook-for-tests && ./node_modules/.bin/jest",
3939
"start": "./node_modules/.bin/start-storybook -p 9001 -s ./node_modules & node tests/app",
4040
"start-static": "node app",
4141
"storybook": "start-storybook -p 9001 -s ./node_modules",

0 commit comments

Comments
 (0)