mirror of
https://github.com/Permissionless-Software-Foundation/psf-memo.git
synced 2026-09-21 16:52:01 -07:00
Merge refactorer set-avatar-url work: shared MemoProfileTextAction base with a profileTextConfig factory so MemoSetName/MemoSetBio/MemoSetAvatarUrl become thin config declarations, plus avatar URL byte-limit, round-trip, and byte budget property tests. No hardening fix required; language mutation reports no survivors and soft Gherkin acceptance mutation survivors are documented equivalents. Record the durable review report. By architect.
66 lines
3.0 KiB
Gherkin
66 lines
3.0 KiB
Gherkin
# acceptance-mutation-manifest-begin
|
|
# {"version":1,"tested_at":"2026-08-27T16:59:00.404406977Z","feature_name":"Set Name","feature_path":"/home/trout/work/psf-memo/.worktrees/architect/psf-memo-client/specs/set-name.feature","background_hash":"e1d5f81f1ed083ac6934c429ca3cb4a0f8d4dac44c2eaa45c0960920bde2c017","implementation_hash":"unknown","scenarios":[{"index":1,"name":"Set Name - 2 an empty name is rejected on the set name page","scenario_hash":"a4fbf28bd1afbffeff2f24f685299663df57e3cc4332a115fea84c08db634670","mutation_count":1,"result":{"Total":1,"Killed":1,"Survived":0,"Errors":0},"tested_at":"2026-08-27T16:59:00.404406977Z"}]}
|
|
# acceptance-mutation-manifest-end
|
|
|
|
# Scenarios: Set Name - 1, Set Name - 2, Set Name - 3, Set Name - 4, Set Name - 5
|
|
Feature: Set Name
|
|
|
|
Background:
|
|
Given a wallet authenticated for the address bitcoincash:qqlrzp23w08434twmvr4fxw672whkjy0py26r63g3d
|
|
Given the wallet has spendable output to pay the transaction fee
|
|
|
|
Scenario Outline: Set Name - 1 a valid name is broadcast and the user lands on the account page
|
|
Given I navigate to the path /memo/set-name
|
|
When I type a name with the text "<name>"
|
|
When I submit the name
|
|
Then the app broadcasts an OP_RETURN transaction with the Memo set-name prefix
|
|
Then I navigate to the path /account
|
|
Then the account page shows my name as "<name>"
|
|
|
|
Examples:
|
|
| name |
|
|
| trout |
|
|
| a longer name with spaces |
|
|
|
|
Scenario Outline: Set Name - 2 an empty name is rejected on the set name page
|
|
Given I navigate to the path /memo/set-name
|
|
When I type a name with the text "<name>"
|
|
When I submit the name
|
|
Then the set name page shows a validation error
|
|
Then the app does not broadcast any transaction
|
|
|
|
Examples:
|
|
| name |
|
|
| |
|
|
|
|
Scenario Outline: Set Name - 3 an over-long name is rejected on the set name page
|
|
Given I navigate to the path /memo/set-name
|
|
When I type a name with the text "<name>"
|
|
When I submit the name
|
|
Then the set name page shows a length error
|
|
Then the app does not broadcast any transaction
|
|
|
|
Examples:
|
|
| name |
|
|
| aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa |
|
|
| bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb |
|
|
| 😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀😀 |
|
|
|
|
Scenario Outline: Set Name - 4 the byte counter counts down from the name limit
|
|
Given I navigate to the path /memo/set-name
|
|
When I type a name with the text "<name>"
|
|
Then the set name page shows a remaining byte count of <count>
|
|
|
|
Examples:
|
|
| name | count |
|
|
| | 77 |
|
|
| trout | 72 |
|
|
| é | 75 |
|
|
| aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa | 0 |
|
|
|
|
Scenario: Set Name - 5 the account page links to the set name page
|
|
Given I navigate to the path /account
|
|
Then the account page shows a Set Name button
|
|
When I click the Set Name button
|
|
Then I navigate to the path /memo/set-name
|