There are two types of components in this project: 'normal' or 'bundled' components, and 'dynamic' components.
'Normal' components are plain old Vue components and are bundled with the consuming application. This is what you are
used to. These are contained in src/components
.
'Dynamic' components are deployed separately from the consuming application and are loaded into the consuming app at runtime.
The consuming app will directly consume (and thus bundle) a wrapper component which knows how to do the dynamic loading.
These are in src/dynamic
. For documentation on how they work, see src/dynamic/README.md
.
The process of releasing this package is as follows:
- The Aeronaut team will have to merge the code into the master branch.
- The Account Components are now treated as 1 release with the Signup App.
If you need to go outside this process please reach out to the tech lead of the aeronauts.
yarn install
yarn storybook
yarn test
yarn lint
This project includes visual regression testing. It is implemented using storyshots-puppeteer and Nu Skin Visual Regression Tools.
# Run a basic test run
yarn test:visual
# Approve new snapshots
yarn test:visual:approve
# Run tests in watch mode
yarn test:visual:watch
# Run tests in the exact way they are run in the pipeline
# (much slower, but more reliable)
yarn test:visual:ci
- Make changes to components
- Run
yarn test:visual
- If you made visual changes:
- If
test:visual
passes, your changes may not have been reflected OR they didn't differ enough from the original snapshot to break the test. It may be useful to delete the snapshots associated with the component you modified and re-run the tests to get new snapshots. - If the tests failed, look at the output and view the diffs it produced.
If they match your expectations, run
yarn test:visual:approve
and commit the updated snapshots.
- If
- If you didn't intend to make visual changes:
- if
test:visual
passed, you're okay! You didn't break anything! - If the tests failed, you'll need to look at the diffs and see what changed in the snapshots.
- if
Our visual tests are based around Storybook stories.
Any story with a parameter called puppeteerTest
will
cause visual regression tests to be run on that story.
In order to include visual regression testing in a story that
is to be included in the master storybook at http://nuskin.design,
you must separate the visual regression test story and the
main story. You can re-use the main story in your visual regression
test story. See
InviteLinkBuilder.visual-testing.stories.js
and
InviteLinkBuilder.stories.js
for an example of how to do this.