@deeeed/metamask-harness 0.38.1 → 0.39.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (45) hide show
  1. package/CHANGELOG.md +12 -0
  2. package/dist/adapters.js +20 -11
  3. package/library/actions/extension/assets/open_details.mjs +30 -0
  4. package/library/actions/extension/assets/set_token_visibility.mjs +5 -0
  5. package/library/actions/extension/perps/search_markets.mjs +32 -0
  6. package/library/actions/extension/perps/set_market_favorite.mjs +6 -1
  7. package/library/actions/extension/swap_bridge/read_visible_state.mjs +2 -6
  8. package/library/actions/extension/swap_bridge/set_amount.mjs +11 -2
  9. package/library/actions/mobile/assets/import_custom_token.mjs +181 -0
  10. package/library/actions/mobile/assets/open_details.mjs +43 -0
  11. package/library/actions/mobile/assets/read_details.mjs +96 -0
  12. package/library/actions/mobile/assets/set_token_visibility.mjs +302 -0
  13. package/library/actions/mobile/assets/verify_sorting.mjs +104 -0
  14. package/library/actions/mobile/networks/add_custom.mjs +125 -0
  15. package/library/actions/mobile/networks/network-management.mjs +132 -0
  16. package/library/actions/mobile/networks/read_visible_state.mjs +43 -0
  17. package/library/actions/mobile/networks/remove_custom.mjs +100 -0
  18. package/library/actions/mobile/perps/search_markets.mjs +46 -0
  19. package/library/actions/mobile/perps/set_market_favorite.mjs +117 -0
  20. package/library/actions/mobile/platform/native-session-name.mjs +14 -0
  21. package/library/actions/mobile/platform/native-session.mjs +59 -0
  22. package/library/actions/mobile/platform/observe-ui.mjs +9 -1
  23. package/library/actions/mobile/swap_bridge/native-session.mjs +10 -45
  24. package/library/actions/mobile/swap_bridge/select_assets.mjs +15 -1
  25. package/library/actions/mobile/swap_bridge/set_amount.mjs +1 -1
  26. package/library/actions/mobile/swap_bridge/set_max_amount.mjs +55 -0
  27. package/library/actions/mobile/swap_bridge/set_slippage.mjs +96 -0
  28. package/library/actions/mobile/swap_bridge/submit_transaction.mjs +141 -0
  29. package/library/actions/mobile/ui/native-navigation.mjs +75 -23
  30. package/library/actions/mobile/ui/navigate.mjs +13 -2
  31. package/library/actions/mobile/wallet/lock.mjs +14 -0
  32. package/library/actions/mobile/wallet/native-ui.mjs +67 -14
  33. package/library/actions/shared/perps/visible-state.mjs +8 -6
  34. package/library/actions/shared/swap-bridge/visible-state.mjs +15 -0
  35. package/library/manifests/extension.action-manifest.json +43 -2
  36. package/library/manifests/mobile.action-manifest.json +308 -1
  37. package/library/recipes/assets/release-token-details.recipe.json +5 -4
  38. package/library/recipes/assets/release-token-hide-readd.recipe.json +2 -0
  39. package/library/recipes/mobile/networks/release-custom-network-persistence.recipe.json +90 -0
  40. package/library/recipes/mobile/networks/release-multichain-visibility.recipe.json +58 -0
  41. package/library/recipes/perps/release-market-search.recipe.json +8 -4
  42. package/library/recipes/perps/release-watchlist.recipe.json +31 -19
  43. package/library/recipes/swap-bridge/release-custom-slippage.recipe.json +5 -13
  44. package/package.json +1 -1
  45. /package/library/recipes/{assets → extension/assets}/release-custom-network-token-persistence.recipe.json +0 -0
@@ -18,6 +18,11 @@
18
18
  "type": "integer",
19
19
  "minimum": 1,
20
20
  "default": 3
21
+ },
22
+ "minimum_unfiltered_results": {
23
+ "type": "integer",
24
+ "minimum": 1,
25
+ "default": 5
21
26
  }
22
27
  }
23
28
  },
@@ -39,16 +44,15 @@
39
44
  "assert-unfiltered": {
40
45
  "action": "metamask.perps.read_visible_state",
41
46
  "surface": "market-list",
42
- "minimum_market_count": 20,
47
+ "minimum_market_count": "{{params.minimum_unfiltered_results}}",
43
48
  "require_features": ["market-list"],
44
49
  "max_items": 100,
45
50
  "intent": "Prove the live market list is populated before filtering",
46
51
  "next": "search"
47
52
  },
48
53
  "search": {
49
- "action": "ui.set_input",
50
- "test_id": "search-input",
51
- "value": "{{params.query}}",
54
+ "action": "metamask.perps.search_markets",
55
+ "query": "{{params.query}}",
52
56
  "intent": "Enter the market search through trusted keyboard input",
53
57
  "next": "assert-filtered"
54
58
  },
@@ -45,28 +45,27 @@
45
45
  "action": "ui.navigate",
46
46
  "page": "perps",
47
47
  "intent": "Show Perps home after adding the favorite",
48
- "next": "assert-added"
48
+ "next": "reopen-market-list-added"
49
49
  },
50
- "assert-added": {
51
- "action": "metamask.perps.read_visible_state",
52
- "surface": "home",
53
- "market": "{{params.market}}",
54
- "require_test_ids": ["perps-watchlist-{{params.market}}"],
55
- "max_items": 150,
56
- "intent": "Prove the favorite persists on the home watchlist",
57
- "next": "reopen-market-list"
58
- },
59
- "reopen-market-list": {
50
+ "reopen-market-list-added": {
60
51
  "action": "ui.navigate",
61
52
  "page": "perps-market-list",
62
- "intent": "Reopen the complete market list",
63
- "next": "reopen-market"
53
+ "intent": "Reopen the market list after adding the favorite",
54
+ "next": "reopen-market-added"
64
55
  },
65
- "reopen-market": {
56
+ "reopen-market-added": {
66
57
  "action": "ui.navigate",
67
58
  "page": "perps-market",
68
59
  "market": "{{params.market}}",
69
60
  "intent": "Reopen the favorited market",
61
+ "next": "assert-added"
62
+ },
63
+ "assert-added": {
64
+ "action": "metamask.perps.set_market_favorite",
65
+ "market": "{{params.market}}",
66
+ "favorite": true,
67
+ "require_unchanged": true,
68
+ "intent": "Prove the favorite persisted after navigating away and back",
70
69
  "next": "remove-favorite"
71
70
  },
72
71
  "remove-favorite": {
@@ -80,14 +79,27 @@
80
79
  "action": "ui.navigate",
81
80
  "page": "perps",
82
81
  "intent": "Show Perps home after removing the favorite",
82
+ "next": "reopen-market-list-removed"
83
+ },
84
+ "reopen-market-list-removed": {
85
+ "action": "ui.navigate",
86
+ "page": "perps-market-list",
87
+ "intent": "Reopen the market list after removing the favorite",
88
+ "next": "reopen-market-removed"
89
+ },
90
+ "reopen-market-removed": {
91
+ "action": "ui.navigate",
92
+ "page": "perps-market",
93
+ "market": "{{params.market}}",
94
+ "intent": "Reopen the unfavorited market",
83
95
  "next": "assert-removed"
84
96
  },
85
97
  "assert-removed": {
86
- "action": "metamask.perps.read_visible_state",
87
- "surface": "home",
88
- "forbid_test_ids": ["perps-watchlist-{{params.market}}"],
89
- "max_items": 150,
90
- "intent": "Prove the removed favorite no longer appears on the watchlist",
98
+ "action": "metamask.perps.set_market_favorite",
99
+ "market": "{{params.market}}",
100
+ "favorite": false,
101
+ "require_unchanged": true,
102
+ "intent": "Prove the removal persisted after navigating away and back",
91
103
  "next": "done"
92
104
  },
93
105
  "done": {
@@ -7,14 +7,14 @@
7
7
  "additionalProperties": false,
8
8
  "properties": {
9
9
  "source_symbol": { "type": "string", "default": "ETH" },
10
- "destination_symbol": { "type": "string", "default": "WETH" },
11
- "source_chain": { "type": "string", "default": "eip155:1" },
12
- "destination_chain": { "type": "string", "default": "eip155:1" },
10
+ "destination_symbol": { "type": "string", "default": "USDC" },
11
+ "source_chain": { "type": "string", "default": "eip155:42161" },
12
+ "destination_chain": { "type": "string", "default": "eip155:42161" },
13
13
  "source_query": { "type": "string", "default": "ETH" },
14
- "destination_query": { "type": "string", "default": "WETH" },
14
+ "destination_query": { "type": "string", "default": "USDC" },
15
15
  "source_asset_id": { "type": "string", "default": "" },
16
16
  "destination_asset_id": { "type": "string", "default": "" },
17
- "amount": { "type": "number", "minimum": 0.00000001, "default": 0.0001 },
17
+ "amount": { "type": "number", "minimum": 0.00000001, "default": 0.002 },
18
18
  "slippage": { "type": "number", "minimum": 0.01, "default": 3 },
19
19
  "timeout_ms": { "type": "integer", "minimum": 1000, "default": 60000 }
20
20
  }
@@ -67,14 +67,6 @@
67
67
  "require_quote": true,
68
68
  "expected_slippage": "{{params.slippage}}",
69
69
  "intent": "Prove the live quote retains the custom slippage value",
70
- "next": "wait-for-quote-display"
71
- },
72
- "wait-for-quote-display": {
73
- "action": "ui.wait_for",
74
- "test_id": "minimum-received",
75
- "expected": "visible",
76
- "timeout_ms": "{{params.timeout_ms}}",
77
- "intent": "Confirm the refreshed quote is visible",
78
70
  "next": "capture-quote"
79
71
  },
80
72
  "capture-quote": {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@deeeed/metamask-harness",
3
- "version": "0.38.1",
3
+ "version": "0.39.0",
4
4
  "type": "module",
5
5
  "bin": {
6
6
  "mm-harness": "bin/mm-harness"