111 lines
4.6 KiB
Gherkin
111 lines
4.6 KiB
Gherkin
Feature: Reliable personal browser experience
|
|
@WJ-036 @browser
|
|
Scenario: Keep a work draft across deployment
|
|
Given Alice has typed an unsaved work entry
|
|
When the backend stops for deployment
|
|
Then the open client shows a maintenance message
|
|
And a fresh public request shows a maintenance page
|
|
When the deployment succeeds and Alice reconnects
|
|
Then her draft is available for review
|
|
And it has not been automatically saved
|
|
|
|
@WJ-037 @browser
|
|
Scenario: Show an offline notice without committing work
|
|
Given the device loses connectivity
|
|
When Alice opens the app
|
|
Then an offline notice is displayed
|
|
And no work or habit mutation is reported as saved
|
|
|
|
@WJ-038 @browser
|
|
Scenario: Initialize and override the language
|
|
Given a new user's preferred supported browser language is German
|
|
When the user first signs in
|
|
Then the interface is German
|
|
When the user chooses English
|
|
Then the account uses English on subsequent sign-ins
|
|
|
|
@WJ-039 @browser
|
|
Scenario: Keep theme overrides local to the device
|
|
Given Alice's smartphone is set to dark and her desktop to system
|
|
When both devices open Werkjournal
|
|
Then the smartphone uses the dark theme
|
|
And the desktop follows its own system preference
|
|
|
|
@WJ-040 @browser
|
|
Scenario Outline: Export private tracking data
|
|
Given Alice and Bob both have tracking data
|
|
When Alice exports <period>
|
|
Then one versioned JSON file contains only Alice's records in that period
|
|
And referenced catalog names and effective allowances are included
|
|
And no credentials or push secrets are included
|
|
Examples:
|
|
| period |
|
|
| September 2026|
|
|
| the year 2026 |
|
|
|
|
@WJ-066 @browser
|
|
Scenario: Import a tracking file beside existing records
|
|
Given Alice has recorded work and holds a tracking file from another journal
|
|
When Alice imports that file in Reports
|
|
Then its work, habit and day-off records are added to her account
|
|
And her own records are unchanged
|
|
When Alice imports the same file again
|
|
Then the dialog reports every record as already present
|
|
|
|
@WJ-041 @browser
|
|
Scenario: Default to English for an unsupported browser language
|
|
Given a new user has no German or English browser language preference
|
|
When the user first signs in
|
|
Then the interface is English
|
|
|
|
@WJ-042 @browser
|
|
Scenario: A different account cannot recover a private draft
|
|
Given Alice has an unsaved local draft
|
|
When Alice signs out and Bob signs in on the same browser
|
|
Then Alice's draft is removed
|
|
And Bob cannot recover Alice's draft
|
|
|
|
@WJ-058 @browser
|
|
Scenario: Preserve a second tab's work draft after saving the first
|
|
Given two tabs have separate drafts for the same work entry
|
|
When the first tab saves its changes
|
|
And the second tab reloads and opens its draft
|
|
Then the second tab still shows its own unsaved input
|
|
And adopting the first tab's version requires an explicit action
|
|
|
|
@WJ-059 @browser
|
|
Scenario: Recover a work draft from a closed tab
|
|
Given Alice has an unsaved work draft in a tab
|
|
When she closes that tab and opens the same form in a new tab
|
|
Then she can explicitly open the earlier draft from this device
|
|
And no work is saved merely by opening the draft
|
|
|
|
@WJ-075 @browser
|
|
Scenario: Choose when the work reminder arrives
|
|
Given Alice's account still uses the reminder time of earlier releases
|
|
When she sets her reminder time to half past five in the afternoon and saves
|
|
Then reopening settings offers that time back
|
|
And the reminder panel on that device announces that time
|
|
When she enters a time outside the offered ones
|
|
Then the page refuses it and keeps the saved time
|
|
|
|
@WJ-076 @browser
|
|
Scenario: Reach the day before and after from the home page
|
|
Given Alice has recorded work on today and on the day before
|
|
When she steps back one day on the home page
|
|
Then that day's own hours and entry are shown there
|
|
And counting a habit from there belongs to that day
|
|
When she steps forward one day
|
|
Then today is shown again and no step beyond today is offered
|
|
When she opens the home page with the earlier day in the address
|
|
Then that day is shown again
|
|
And a day beyond today in the address lands on today
|
|
|
|
@WJ-077 @browser
|
|
Scenario: Pick a day on the home page without a date field
|
|
Given Alice is on the home page
|
|
Then the heading names the day and no motto takes a line of its own
|
|
And the day steps and the date button share one line
|
|
When she opens the date button and picks the first of that month
|
|
Then the home page shows that day
|