Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Touched. Fixing CI #302

Merged
merged 17 commits into from
Oct 23, 2018
Merged

Touched. Fixing CI #302

merged 17 commits into from
Oct 23, 2018

Conversation

kettanaito
Copy link
Owner

@kettanaito kettanaito commented Oct 13, 2018

Roadmap

  • Add touched property to the field record
  • Add unit test on recordUtils to ensure default value of the touched property
  • Adjust Form.reset integration scenario
  • Adjust Form.setErrors() integration scenario
  • Migrate integration test suits to run against running Storybook
    • Interaction
    • Behavior
    • Field grouping
    • Components
    • Validation
    • Reactive props
  • Build Storybook prior to integration tests
  • Establish a simple server serving built Storybook

@kettanaito
Copy link
Owner Author

kettanaito commented Oct 16, 2018

There is an issue that field value assertions includes wrong value (i.e. expected foo, includes oo). It's usually all but the first character in the field. The actual field value in the DOM is also wrong.

I am starting to think it has to do with #268. Still confusing to me why it happens occasionally. Test suits on local in GUI are fine, on local in console are broken.

@kettanaito kettanaito force-pushed the feature/field-touched branch 2 times, most recently from 8f0ad58 to 3e92d42 Compare October 17, 2018 13:05
@kettanaito
Copy link
Owner Author

Removing touched assertions from the default tests results into CI passing.

The separate touched assertion test fails, indicating the failing domain, which is good. Focusing on making that test correct.

@kettanaito
Copy link
Owner Author

kettanaito commented Oct 18, 2018

Migrating integration test suits to run against open Storybook server.

Motivation:

  • Eliminate intermediate rendering layer when rendering the suits
  • Be as close to Storybook as possible
  • Have no runtime context (Storybook is already built and running)
  • Eliminate context overlapping issues (unmounting/async actions)
  • Cypress to act more like E2E testing, rather than integration one

@kettanaito
Copy link
Owner Author

I've finished the test migration. What I can see so far, is that building storybook's development version takes very long during the CI. Might consider building production version of storybook, run it, and test against it. That should be generally faster.

@kettanaito
Copy link
Owner Author

kettanaito commented Oct 18, 2018

Even after changing the tests to run against Storybook, the pipeline reliability is still poor.

As previously, I see tests perfectly passing in both GUI and CLI on local, yet failing on CircleCI. The next strategy is to eliminate context change during tests, meaning that a test scenario is loaded once, and the group of test suits are executed sequentially, without reloading/reseting the scenario.

At least, the speed of CI became higher. Going to stay positive about something.

@kettanaito kettanaito force-pushed the feature/field-touched branch 2 times, most recently from 7f8a7d2 to 62a4a6d Compare October 18, 2018 19:15
@kettanaito kettanaito force-pushed the feature/field-touched branch 2 times, most recently from 9dd9bb9 to ccc9293 Compare October 19, 2018 10:03
@kettanaito
Copy link
Owner Author

Tried increasing default timeout on Cypress from 4000ms to 10000ms (2x), didn't help.

@kettanaito kettanaito changed the title Adds "touched" to the field record Touched. Fixing CI Oct 23, 2018
@kettanaito kettanaito merged commit f0b0343 into 1.6 Oct 23, 2018
@kettanaito kettanaito deleted the feature/field-touched branch October 23, 2018 11:23
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant