43 lines
2.2 KiB
Gherkin
43 lines
2.2 KiB
Gherkin
Feature: The visual checker covers the Localization board
|
|
web/visual discovers the Localization board, its groups, its 1024 px
|
|
captures and its fixtures, so that this slice and every later localization
|
|
slice is gated against docs/design.
|
|
|
|
Background:
|
|
Given the board is docs/design/source/RenewCMS Screens Localization.dc.html with frame LocaleFrame
|
|
And the state tables are docs/design/screens/localization-*.md and docs/design/states.md
|
|
And task visual:check is a hard gate: every capture within 10 %, no unmocked /v1 call, no size mismatch, no exception without the user's approval
|
|
And no threshold is changed
|
|
And nothing in docs/design is edited
|
|
|
|
Scenario: Groups are discovered from the screen file
|
|
When task visual:check runs for "localization-site-languages"
|
|
Then the checker reads the visual reference line and the three groups L1, L1b and L2
|
|
And it lists their 25, 9 and 7 states by their loc.* ids
|
|
And a state with no setup in web/visual fails the run
|
|
|
|
Scenario Outline: Capture sizes
|
|
Given a state lists <sizes> in its Sizes column
|
|
Then the checker captures the board frame and the SPA at <widths>, in light and dark
|
|
And a state with 1440 and 390 only gets no 1024 capture
|
|
|
|
Examples:
|
|
| sizes | widths |
|
|
| 1440, 390 | 1440x900 and 390x844 |
|
|
| 1440, 1024, 390 | 1440x900, 1024x? and 390x844 |
|
|
|
|
Scenario: Selecting frames
|
|
Given LocaleFrame is selected by LocaleFrame{s:{v:"sl",x:"multi"}}
|
|
Then the checker renders that state in the board and captures its frame
|
|
And a state is addressed by its loc.* id, not by the legacy name
|
|
|
|
Scenario: Fixtures and mocks
|
|
Then every state's setup uses the matching fixture of locale-fixtures.js (Journal, Atelier, Archive, Notes, Gallery)
|
|
And the mocked /v1 responses are derived from those fixtures
|
|
And the board's it, ja and zh-Hans tags are used by mocks only
|
|
And states that depend on the current date or time are skipped as clock-sensitive and nothing else is
|
|
|
|
Scenario: Existing screens are unaffected
|
|
When task visual:check runs for any screen that existed before
|
|
Then its states, sizes and verdicts are the same as before
|