Skip to content
Open
Show file tree
Hide file tree
Changes from 19 commits
Commits
Show all changes
22 commits
Select commit Hold shift + click to select a range
16ec2bc
add initial version of linearize send flow
leofelix077 May 11, 2026
b2246b5
fix input handling for decimal amounts
leofelix077 May 11, 2026
d151993
adjust layouting for send flow
leofelix077 May 11, 2026
119c0e8
rewrite sendpayment tests
leofelix077 May 11, 2026
309e590
fix UI according to figma design
leofelix077 May 11, 2026
e64eb2d
bring Ui in line with mobile
leofelix077 May 12, 2026
768acf9
fix amount formatting on base usd value
leofelix077 May 12, 2026
ba7d7cf
adjust navigation flows for send and collectible flows and add e2e tests
leofelix077 May 13, 2026
03e09be
keep recents on search and add debounce
leofelix077 May 13, 2026
4326a2c
preserve amounts between swap of fiat and token
leofelix077 May 13, 2026
2fec35e
update input validation and navigation on changes
leofelix077 May 13, 2026
87d6271
Merge branch 'master' into feature/linearize-send-flow
leofelix077 May 13, 2026
09fec92
fix debounce, unused strings and navigation flow for suggestions
leofelix077 May 13, 2026
cb9fc71
Merge branch 'feature/linearize-send-flow' of https://github.com/stel…
leofelix077 May 13, 2026
ae763e9
add tests for amount preservation toggle between fiat and token
leofelix077 May 13, 2026
bce720b
add tests for amount preservation toggle between fiat and token
leofelix077 May 13, 2026
7cdb65f
remove duplicated tests for memo editing context
leofelix077 May 14, 2026
41188cf
adjust e2e tests to new send flow and minor UI elements
leofelix077 May 14, 2026
c8c968f
adjust comments from agentic code review
leofelix077 May 14, 2026
d281820
update loading state for search
leofelix077 May 14, 2026
29c7d15
fix load account failing test
leofelix077 May 14, 2026
d11ef2f
wait for search to settle to allow continue
leofelix077 May 14, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
15 changes: 6 additions & 9 deletions extension/e2e-tests/blockaidScan.errors.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -83,9 +83,8 @@ test.describe("BlockAid Scan - Edge Cases", () => {
});

await page.getByTestId("nav-link-send").click();
await expect(page.getByTestId("send-amount-amount-input")).toBeVisible();

await page.getByTestId("address-tile").click();
await expect(page.getByTestId("token-list")).toBeVisible();
await page.getByTestId("SendRow-native").click();
await page
.getByTestId("send-to-input")
.fill("GBTYAFHGNZSTE4VBWZYAGB3SRGJEPTI5I4Y22KZ4JTVAN56LESB6JZOF");
Expand Down Expand Up @@ -123,9 +122,8 @@ test.describe("BlockAid Scan - Edge Cases", () => {
});

await page.getByTestId("nav-link-send").click();
await expect(page.getByTestId("send-amount-amount-input")).toBeVisible();

await page.getByTestId("address-tile").click();
await expect(page.getByTestId("token-list")).toBeVisible();
await page.getByTestId("SendRow-native").click();
await page
.getByTestId("send-to-input")
.fill("GBTYAFHGNZSTE4VBWZYAGB3SRGJEPTI5I4Y22KZ4JTVAN56LESB6JZOF");
Expand Down Expand Up @@ -239,9 +237,8 @@ test.describe("BlockAid Scan - Edge Cases", () => {
});

await page.getByTestId("nav-link-send").click();
await expect(page.getByTestId("send-amount-amount-input")).toBeVisible();

await page.getByTestId("address-tile").click();
await expect(page.getByTestId("token-list")).toBeVisible();
await page.getByTestId("SendRow-native").click();
await page
.getByTestId("send-to-input")
.fill("GBTYAFHGNZSTE4VBWZYAGB3SRGJEPTI5I4Y22KZ4JTVAN56LESB6JZOF");
Expand Down
10 changes: 4 additions & 6 deletions extension/e2e-tests/blockaidScan.malicious.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -121,9 +121,8 @@ test.describe("BlockAid Scan - Malicious States", () => {
});

await page.getByTestId("nav-link-send").click();
await expect(page.getByTestId("send-amount-amount-input")).toBeVisible();

await page.getByTestId("address-tile").click();
await expect(page.getByTestId("token-list")).toBeVisible();
await page.getByTestId("SendRow-native").click();
await page
.getByTestId("send-to-input")
.fill("GBTYAFHGNZSTE4VBWZYAGB3SRGJEPTI5I4Y22KZ4JTVAN56LESB6JZOF");
Expand Down Expand Up @@ -344,9 +343,8 @@ test.describe("BlockAid Scan - Malicious States", () => {

// Go to send payment to an M-address (requires memo)
await page.getByTestId("nav-link-send").click();
await expect(page.getByTestId("send-amount-amount-input")).toBeVisible();

await page.getByTestId("address-tile").click();
await expect(page.getByTestId("token-list")).toBeVisible();
await page.getByTestId("SendRow-native").click();
await page
.getByTestId("send-to-input")
.fill("GA6SXIZIKLJHCZI2KEOBEUUOFMM4JUPPM2UTWX6STAWT25JWIEUFIMFF");
Expand Down
5 changes: 2 additions & 3 deletions extension/e2e-tests/blockaidScan.safe.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -126,9 +126,8 @@ test.describe("BlockAid Scan - Safe States (No Override)", () => {
});

await page.getByTestId("nav-link-send").click();
await expect(page.getByTestId("send-amount-amount-input")).toBeVisible();

await page.getByTestId("address-tile").click();
await expect(page.getByTestId("token-list")).toBeVisible();
await page.getByTestId("SendRow-native").click();
await page
.getByTestId("send-to-input")
.fill("GBTYAFHGNZSTE4VBWZYAGB3SRGJEPTI5I4Y22KZ4JTVAN56LESB6JZOF");
Expand Down
10 changes: 4 additions & 6 deletions extension/e2e-tests/blockaidScan.suspicious.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -109,9 +109,8 @@ test.describe("BlockAid Scan - Suspicious States", () => {
});

await page.getByTestId("nav-link-send").click();
await expect(page.getByTestId("send-amount-amount-input")).toBeVisible();

await page.getByTestId("address-tile").click();
await expect(page.getByTestId("token-list")).toBeVisible();
await page.getByTestId("SendRow-native").click();
await page
.getByTestId("send-to-input")
.fill("GBTYAFHGNZSTE4VBWZYAGB3SRGJEPTI5I4Y22KZ4JTVAN56LESB6JZOF");
Expand Down Expand Up @@ -323,9 +322,8 @@ test.describe("BlockAid Scan - Suspicious States", () => {

// Go to send payment to an M-address (requires memo)
await page.getByTestId("nav-link-send").click();
await expect(page.getByTestId("send-amount-amount-input")).toBeVisible();

await page.getByTestId("address-tile").click();
await expect(page.getByTestId("token-list")).toBeVisible();
await page.getByTestId("SendRow-native").click();
await page
.getByTestId("send-to-input")
.fill("GA6SXIZIKLJHCZI2KEOBEUUOFMM4JUPPM2UTWX6STAWT25JWIEUFIMFF");
Expand Down
10 changes: 4 additions & 6 deletions extension/e2e-tests/blockaidScan.unable.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -129,9 +129,8 @@ test.describe("BlockAid Scan - Unable to Scan States", () => {

// Navigate to send payment
await page.getByTestId("nav-link-send").click();
await expect(page.getByTestId("send-amount-amount-input")).toBeVisible();

await page.getByTestId("address-tile").click();
await expect(page.getByTestId("token-list")).toBeVisible();
await page.getByTestId("SendRow-native").click();
// Use a valid test address
await page
.getByTestId("send-to-input")
Expand Down Expand Up @@ -368,9 +367,8 @@ test.describe("BlockAid Scan - Unable to Scan States", () => {

// Go to send payment to an M-address (requires memo)
await page.getByTestId("nav-link-send").click();
await expect(page.getByTestId("send-amount-amount-input")).toBeVisible();

await page.getByTestId("address-tile").click();
await expect(page.getByTestId("token-list")).toBeVisible();
await page.getByTestId("SendRow-native").click();
await page
.getByTestId("send-to-input")
.fill("GA6SXIZIKLJHCZI2KEOBEUUOFMM4JUPPM2UTWX6STAWT25JWIEUFIMFF");
Expand Down
47 changes: 24 additions & 23 deletions extension/e2e-tests/integration-tests/sendIntegration.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -46,9 +46,8 @@ test("Send persists inputs and submits to network", async ({
});
await page.getByTestId("nav-link-send").click({ force: true });

await expect(page.getByTestId("send-amount-amount-input")).toBeVisible();

await page.getByTestId("address-tile").click();
await expect(page.getByTestId("token-list")).toBeVisible();
await page.getByTestId("SendRow-native").click();

await page
.getByTestId("send-to-input")
Expand Down Expand Up @@ -137,12 +136,11 @@ test("Send XLM payments to recent federated addresses", async ({
await loginToTestAccount({ page, extensionId, context, isIntegrationMode });
await page.getByTestId("nav-link-send").click({ force: true });

await expect(page.getByTestId("send-amount-amount-input")).toBeVisible();

await page.getByTestId("address-tile").click();
await expect(page.getByTestId("token-list")).toBeVisible();
await page.getByTestId("SendRow-native").click();

await page.getByTestId("send-to-input").fill("freighter.pb*lobstr.co");
await expect(page.getByTestId("send-to-identicon")).toBeVisible();
await expect(page.getByTestId("send-to-suggestion-button")).toBeVisible();
await page.getByText("Continue").click({ force: true });

await expect(page.getByTestId("send-amount-amount-input")).toBeVisible();
Expand All @@ -168,10 +166,8 @@ test("Send XLM payments to recent federated addresses", async ({
await page.getByText("Done").click();
await page.getByTestId("nav-link-send").click();

await expect(page.getByTestId("send-amount-amount-input")).toBeVisible();
await expect(page.getByText("Send to")).toBeVisible();

await page.getByTestId("address-tile").click();
await expect(page.getByTestId("token-list")).toBeVisible();
await page.getByTestId("SendRow-native").click();

await expect(page.getByText("Recents")).toBeVisible();

Expand Down Expand Up @@ -215,9 +211,8 @@ test("Send XLM payment to C address", async ({

await page.getByTestId("nav-link-send").click({ force: true });

await expect(page.getByTestId("send-amount-amount-input")).toBeVisible();

await page.getByTestId("address-tile").click();
await expect(page.getByTestId("token-list")).toBeVisible();
await page.getByTestId("SendRow-native").click();

await page.getByTestId("send-to-input").fill(TEST_TOKEN_ADDRESS);
await page.getByText("Continue").click({ force: true });
Expand Down Expand Up @@ -259,9 +254,8 @@ test("Send XLM payment to M address", async ({

await page.getByTestId("nav-link-send").click({ force: true });

await expect(page.getByTestId("send-amount-amount-input")).toBeVisible();

await page.getByTestId("address-tile").click();
await expect(page.getByTestId("token-list")).toBeVisible();
await page.getByTestId("SendRow-native").click();

await page.getByTestId("send-to-input").fill(TEST_M_ADDRESS);
await page.getByText("Continue").click();
Expand Down Expand Up @@ -403,22 +397,29 @@ test("Send token payment to C address", async ({
}

await page.getByTestId("nav-link-send").click({ force: true });
await expect(page.getByTestId("send-amount-amount-input")).toBeVisible();

await page.getByTestId("address-tile").click();
await expect(page.getByTestId("token-list")).toBeVisible();
await page.getByTestId("SendRow-native").click();

await page.getByTestId("send-to-input").fill(TEST_TOKEN_ADDRESS);
await page.getByText("Continue").click({ force: true });

await expect(page.getByTestId("send-amount-amount-input")).toBeVisible();

await page.locator(".SendAmount__EditDestAsset").click();
await page.getByTestId("send-amount-edit-dest-asset").click();

await page.getByText("E2E").click();
await page
.locator(".Send__step:not(.Send__step--hidden)")
.getByText("E2E")
.click();

await expect(page.getByTestId("send-amount-amount-input")).toBeVisible();
await page.getByTestId("send-amount-amount-input").fill(".001");
await page.getByText("Review Send").click({ force: true });

// Wait for auto-simulation to complete before clicking Review Send.
// handleContinue returns early if simulationState.state === LOADING.
const reviewSendButton = page.getByTestId("send-amount-btn-continue");
await expect(reviewSendButton).toBeEnabled({ timeout: 30000 });
await reviewSendButton.click();

await expect(page.getByText("You are sending")).toBeVisible({
timeout: 60000,
Expand Down
Loading
Loading