Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
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
5 changes: 5 additions & 0 deletions .changeset/clear-trains-move.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
"@exactly/mobile": patch
---

💄 adjust tamagui tokens
5 changes: 5 additions & 0 deletions .changeset/curly-waves-yell.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
"@exactly/mobile": patch
---

💄 restyle card status component
5 changes: 5 additions & 0 deletions .changeset/easy-snails-brake.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
"@exactly/mobile": patch
---

💄 restyle action buttons
5 changes: 5 additions & 0 deletions .changeset/frank-schools-clap.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
"@exactly/mobile": patch
---

💄 restructure sheets layout
5 changes: 5 additions & 0 deletions .changeset/giant-parrots-enter.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
"@exactly/mobile": patch
---

💄 adjust home scroll view gaps
5 changes: 5 additions & 0 deletions .changeset/khaki-queens-smash.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
"@exactly/mobile": patch
---

💄 apply tamagui spacing tokens
5 changes: 5 additions & 0 deletions .changeset/lazy-planes-dance.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
"@exactly/mobile": patch
---

💄 refine benefits carousel
5 changes: 5 additions & 0 deletions .changeset/little-hoops-train.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
"@exactly/mobile": patch
---

💄 replace fonts
5 changes: 5 additions & 0 deletions .changeset/salty-fans-mate.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
"@exactly/mobile": patch
---

💄 add vertical frame to styled button
5 changes: 5 additions & 0 deletions .changeset/soft-beans-grow.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
"@exactly/mobile": patch
---

💫 unify animation parameters
5 changes: 5 additions & 0 deletions .changeset/spicy-doodles-give.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
"@exactly/mobile": patch
---

💄 restyle portfolio summary
2 changes: 2 additions & 0 deletions .maestro/flows/local.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -24,5 +24,7 @@ tags: [critical]
file: ../subflows/mint.yaml
env: { asset: ETH, to: "${output.account}", amount: "0.1" }
- runFlow: ../subflows/verifyIdentity.yaml
- runFlow: ../subflows/readBenefits.yaml
- runFlow: ../subflows/activateCard.yaml
- runFlow: ../subflows/readHome.yaml
- runFlow: ../subflows/storeCoverage.yaml
37 changes: 28 additions & 9 deletions .maestro/subflows/activateCard.yaml
Original file line number Diff line number Diff line change
@@ -1,16 +1,13 @@
appId: ${APP_ID ?? "app.exactly"}
---
- tapOn: Card
- runFlow:
when: { true: "${maestro.platform != 'web'}" }
commands:
- tapOn: \$[\s\d,.\xa0]+, AVAILABLE BALANCE
- runFlow:
when: { platform: web }
commands: [{ tapOn: Available balance }]
- tapOn: Card details
- waitForAnimationToEnd
- runFlow:
when: { visible: Accept and enable card }
commands: [{ tapOn: Accept and enable card }]
commands:
- runFlow: { file: scrollTo.yaml, env: { element: Accept and enable card } }
- tapOn: Accept and enable card
- assertVisible: Manually add your card to Apple Pay & Google Pay to make contactless payments.
- tapOn: Close
- tapOn: Freeze card
Expand Down Expand Up @@ -42,4 +39,26 @@ appId: ${APP_ID ?? "app.exactly"}
text: \$[\s\d,.\xa0]+
above: Available balance
- tapOn: Home
- assertVisible: SPENDING LIMIT
- runFlow:
when: { visible: Spending limit }
commands:
- tapOn: Later in 1
- assertVisible: How installment repayment works
- tapOn: Close
- tapOn: Tap here to change the number of installments
- runFlow: { file: ../subflows/tapAria.yaml, env: { aria: Close } }
- runFlow: { file: scrollTo.yaml, env: { element: Learn more } }
- tapOn:
text: Learn more
rightOf: Exa Card pay mode
- assertVisible: Change the pay mode before each purchase and pay how you want.
- tapOn: Close
- runFlow: { file: scrollTo.yaml, env: { element: Credit limit info } }
- runFlow: { file: ../subflows/tapAria.yaml, env: { aria: Credit limit info } }
- assertVisible: It's based on the value of your collateral assets and updates as their value changes.
- tapOn: Close
- tapOn: Now
- runFlow: { file: scrollTo.yaml, env: { element: Spending limit info } }
- runFlow: { file: ../subflows/tapAria.yaml, env: { aria: Spending limit info } }
- assertVisible: It's based on the USDC available in your balance.
- tapOn: Close
4 changes: 2 additions & 2 deletions .maestro/subflows/borrow.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ appId: ${APP_ID ?? "app.exactly"}
- tapOn: DeFi
- runFlow:
when: { visible: Explore decentralized services }
commands: [{ tapOn: "Explore decentralized services" }]
commands: [{ tapOn: 'Explore decentralized services' }]
- tapOn: USDC funding
- runFlow:
when: { visible: Connect wallet to Exactly Protocol }
Expand All @@ -32,7 +32,7 @@ appId: ${APP_ID ?? "app.exactly"}
- runScript: ../dist/getAccount.js
- runScript:
file: ../dist/hookProposals.js
env: { account: "${output.account}" }
env: { account: '${output.account}' }
- tapOn: Close
- tapOn: Home
- runFlow:
Expand Down
12 changes: 12 additions & 0 deletions .maestro/subflows/copyAria.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
appId: ${APP_ID ?? "app.exactly"}
---
# HACK https://github.com/mobile-dev-inc/Maestro/issues/2914
- runFlow:
when: { true: "${maestro.platform != 'web'}" }
commands:
- copyTextFrom: "${aria}"
- runFlow:
when: { platform: web }
commands:
- copyTextFrom:
id: "${aria}"
2 changes: 1 addition & 1 deletion .maestro/subflows/dismissNotifications.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -7,5 +7,5 @@ appId: ${APP_ID ?? "app.exactly"}
- tapOn: Not now
- pressKey: home
- launchApp: { permissions: { all: deny, camera: allow } }
- extendedWaitUntil: { visible: Your portfolio, timeout: 180000 }
- extendedWaitUntil: { visible: Portfolio, timeout: 180000 }
- assertNotVisible: Stay updated
33 changes: 33 additions & 0 deletions .maestro/subflows/readBenefits.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
appId: ${APP_ID ?? "app.exactly"}
---
- repeat:
while:
notVisible: Copy your ID and get 30 days of travel insurance for free on Pax Assistance.
commands:
- extendedWaitUntil:
visible: 30 days of free travel insurance
timeout: 15000
- tapOn: Get now
- assertVisible: "Copy Pax ID [a-z0-9]{10}"
- assertVisible: Get benefit
- runFlow: { file: tapAria.yaml, env: { aria: Close } }
- repeat:
while:
notVisible: Stay connected around the world.
commands:
- extendedWaitUntil:
visible: 20% OFF on eSims
timeout: 15000
- tapOn: 20% OFF on eSims
- assertVisible: Get benefit
- runFlow: { file: tapAria.yaml, env: { aria: Close } }
- repeat:
while:
notVisible: Visa Signature Exa Card benefits
commands:
- extendedWaitUntil:
visible: Visa Signature benefits
timeout: 15000
- tapOn: Learn more
- assertVisible: Go to Visa
- runFlow: { file: tapAria.yaml, env: { aria: Close } }
51 changes: 51 additions & 0 deletions .maestro/subflows/readHome.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,51 @@
appId: ${APP_ID ?? "app.exactly"}
---
- tapOn: Home
- assertVisible: ${output.account.slice(0, 6)}…${output.account.slice(-4)}
- runFlow:
when: { true: "${maestro.platform != 'web'}" }
commands: [{ assertVisible: Settings }]
- runFlow:
when: { platform: web }
commands: [{ assertVisible: { id: Settings } }]
- runFlow: { file: tapAria.yaml, env: { aria: Hide sensitive } }
- runFlow:
when: { true: "${maestro.platform != 'web'}" }
commands:
- assertNotVisible:
text: \$[\s\d,.\xa0]+
below: Portfolio
- runFlow:
when: { platform: web }
commands:
- assertNotVisible:
id: \$[\s\d,.\xa0]+
- runFlow: { file: tapAria.yaml, env: { aria: Show sensitive } }
- runFlow:
when: { true: "${maestro.platform != 'web'}" }
commands:
- assertVisible:
text: \$[\s\d,.\xa0]+
below: Portfolio
- runFlow:
when: { platform: web }
commands:
- assertVisible:
id: \$[\s\d,.\xa0]+
- runFlow: readPortfolio.yaml
- assertTrue: ${output.portfolio > 0}
- tapOn: Manage portfolio
- assertVisible: Your Portfolio
- runFlow: { file: tapAria.yaml, env: { aria: Back } }
- assertVisible: Add funds
- assertVisible: Send
- assertVisible: Swap
- assertNotVisible: Getting Started
- runFlow: { file: scrollTo.yaml, env: { element: Upcoming payments } }
- runFlow: { file: scrollTo.yaml, env: { element: Latest activity } }
- assertNotVisible: No activity yet
- tapOn: View all
- tapOn: Home
- tapOn: Home
- waitForAnimationToEnd
- assertVisible: Portfolio
6 changes: 3 additions & 3 deletions .maestro/subflows/readPortfolio.yaml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
appId: ${APP_ID ?? "app.exactly"}
---
- copyTextFrom:
below: Your portfolio
text: ^(US)?\$[\s\d,.\xa0]+$
- runFlow:
file: copyAria.yaml
env: { aria: "^(US)?\\$[\\s\\d,.\\xa0]+$" }

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Badge Scope portfolio copy selector to the portfolio value

This selector now captures any dollar-formatted string on the screen, but the revamped home view shows multiple $... values (portfolio total, card limits, payment amounts). output.portfolio is then used as the baseline for borrow/send/mint delta assertions, so copying the wrong amount will produce incorrect comparisons and flaky flow failures. Reintroduce a locator that uniquely anchors the portfolio total.

Useful? React with 👍 / 👎.

- evalScript: ${output.portfolio = Number(maestro.copiedText.replace(/\D/g, "")) / 100}
4 changes: 2 additions & 2 deletions .maestro/subflows/repay.yaml
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
appId: ${APP_ID ?? "app.exactly"}
---
- waitForAnimationToEnd
- scrollUntilVisible: { element: Upcoming payments }
- runFlow: { file: scrollTo.yaml, env: { element: Repay } }
- copyTextFrom:
text: \d+[,.]\d{2}
below: Upcoming payments
Expand Down Expand Up @@ -43,7 +43,7 @@ appId: ${APP_ID ?? "app.exactly"}
file: ../subflows/tapWhileAria.yaml
env: { aria: Pending proposals, tap: Home }
- waitForAnimationToEnd
- scrollUntilVisible: { element: Upcoming payments }
- runFlow: { file: scrollTo.yaml, env: { element: Repay } }
- runFlow:
when: { true: "${!amount}" }
commands: [{ assertNotVisible: "${output.maturity}" }]
Expand Down
4 changes: 2 additions & 2 deletions .maestro/subflows/rollover.yaml
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
appId: ${APP_ID ?? "app.exactly"}
---
- waitForAnimationToEnd
- scrollUntilVisible: { element: Upcoming payments }
- runFlow: { file: scrollTo.yaml, env: { element: Repay, offset: 1 } }
- copyTextFrom:
text: \d+[,.]\d{2}
below: Upcoming payments
Expand All @@ -28,7 +28,7 @@ appId: ${APP_ID ?? "app.exactly"}
file: ../subflows/tapWhileAria.yaml
env: { aria: Pending proposals, tap: Home }
- waitForAnimationToEnd
- scrollUntilVisible: { element: Upcoming payments }
- runFlow: { file: scrollTo.yaml, env: { element: Repay } }
- copyTextFrom:
text: \d+[,.]\d{2}
below: Upcoming payments
Expand Down
46 changes: 46 additions & 0 deletions .maestro/subflows/scrollTo.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,46 @@
appId: ${APP_ID ?? "app.exactly"}
---
# HACK https://github.com/mobile-dev-inc/maestro/issues/1775
# maestro web uses window.scroll() which doesn't reach inner scroll containers
- runFlow:
when: { true: "${maestro.platform != 'web'}" }
commands:
- scrollUntilVisible: { element: "${element}" }
- runFlow:
when: { platform: web }
commands:
- evalScript: ${output.scrollDeadline = Date.now() + 30000}
- evalScript: ${output.found = false}
- repeat:
while:
true: "${!output.found}"
commands:
- runFlow:
when: { visible: "${element}" }
commands: [{ evalScript: "${output.found = true}" }]
- runFlow:
when: { visible: { id: "${element}" } }
commands: [{ evalScript: "${output.found = true}" }]
- runFlow:
when: { true: "${!output.found}" }
commands:
- runFlow:
when: { true: "${Date.now() >= output.scrollDeadline}" }
commands: [{ evalScript: "${throw new Error('scroll timeout')}" }]
- swipe:
start: "50%,40%"
end: "50%,10%"
duration: 500
- runFlow:
when: { true: "${typeof offset !== 'undefined' && Number(offset) > 0}" }
commands:
- evalScript: ${output.scrollExtra = 0}
- repeat:
while:
true: "${output.scrollExtra < Number(offset)}"
commands:
- swipe:
start: "50%,70%"
end: "50%,50%"
duration: 300
- evalScript: ${output.scrollExtra = output.scrollExtra + 1}
5 changes: 2 additions & 3 deletions app.config.ts
Original file line number Diff line number Diff line change
Expand Up @@ -80,9 +80,8 @@ export default {
"expo-font",
{
fonts: [
"src/assets/fonts/BDOGrotesk-DemiBold.otf",
"src/assets/fonts/BDOGrotesk-Regular.otf",
"src/assets/fonts/IBMPlexMono-Medm.otf",
"src/assets/fonts/SplineSans-Regular.otf",
"src/assets/fonts/SplineSans-SemiBold.otf",
],
} satisfies FontProps,
],
Expand Down
4 changes: 1 addition & 3 deletions cspell.json
Original file line number Diff line number Diff line change
Expand Up @@ -50,7 +50,6 @@
"decisioned",
"defi",
"delegatecall",
"demi",
"deployless",
"dieguezguille",
"dismissable",
Expand All @@ -73,12 +72,10 @@
"gitmoji",
"gitmojis",
"graaljs",
"grotesk",
"hdpi",
"hexlify",
"hideable",
"hono",
"IBMPlexMono-Medm",
"IERC",
"indoc",
"infinitism",
Expand Down Expand Up @@ -151,6 +148,7 @@
"solmate",
"sourcify",
"spkg",
"splinesans",
"spotlightjs",
"staticcall",
"streamingfast",
Expand Down
Loading
Loading