@12-apps/payments-e2e 2.5.0 → 2.7.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.
- package/README.md +24 -7
- package/dist/helpers/checkout.d.ts +13 -1
- package/dist/helpers/checkout.d.ts.map +1 -1
- package/dist/helpers/checkout.js +18 -3
- package/dist/helpers/checkout.js.map +1 -1
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/dist/steps/compra.steps.js +11 -2
- package/dist/steps/compra.steps.js.map +1 -1
- package/dist/steps/guia.steps.js +24 -4
- package/dist/steps/guia.steps.js.map +1 -1
- package/dist/steps/reconexao.steps.js +20 -16
- package/dist/steps/reconexao.steps.js.map +1 -1
- package/dist/world.d.ts +47 -2
- package/dist/world.d.ts.map +1 -1
- package/dist/world.js.map +1 -1
- package/features/a-compra-sobrevive-ao-primeiro-provedor.feature +1 -0
- package/features/comprando-com-apple-pay.feature +2 -0
- package/features/comprando-com-cartao.feature +2 -0
- package/features/comprando-com-google-pay.feature +2 -0
- package/package.json +7 -3
package/README.md
CHANGED
|
@@ -4,11 +4,15 @@ The buyer journeys for the payments checkout, as Gherkin you run **against your
|
|
|
4
4
|
own app**.
|
|
5
5
|
|
|
6
6
|
Mounting `createPaymentFlows` gives you a checkout. This gives you its
|
|
7
|
-
end-to-end coverage:
|
|
7
|
+
end-to-end coverage: thirty-six scenarios across thirteen features — PIX, card,
|
|
8
8
|
digital wallets, hosted hand-off and return, provider failover, issuer
|
|
9
9
|
declines, an unresolved charge, a store that cannot charge at all,
|
|
10
|
-
per-provider screens,
|
|
11
|
-
|
|
10
|
+
per-provider screens, saving a card outside checkout, activating a provider
|
|
11
|
+
with a verification charge, a dead OAuth grant and its reconnection, and a
|
|
12
|
+
setup guide that speaks in the host platform's name. A further five scenarios
|
|
13
|
+
in two features cover the platform-operations surface, behind their own
|
|
14
|
+
opt-in port ([below](#the-platform-operations-journeys-opt-in)) — forty-one in
|
|
15
|
+
all. You implement one port and add three lines of config. Nothing is copied, so a scenario added here
|
|
12
16
|
later runs in your app on the next version bump.
|
|
13
17
|
|
|
14
18
|
## Why a port at all
|
|
@@ -35,8 +39,12 @@ definePaymentsWorld({
|
|
|
35
39
|
raiseHostedPayable: async (page) => { /* …and wait for the interstitial */ },
|
|
36
40
|
returnFromProvider: async (page) => { /* a real return trip */ },
|
|
37
41
|
hostedReturnStatus: (page) => page.getByTestId('…'),
|
|
38
|
-
|
|
39
|
-
|
|
42
|
+
authorizeOAuth: async (page) => { /* play the provider's consent screen */ },
|
|
43
|
+
fixtures: { headProvider, tailProvider, hostedUrlFragment, payableRef, taxId, platformBrand, oauthProvider },
|
|
44
|
+
wire: {
|
|
45
|
+
paths, chargeKeys, chargeBody, tokensByProvider, providerCharges, providerChargeCount, navigated,
|
|
46
|
+
connectionStatus, connectionEnabled, rotation,
|
|
47
|
+
},
|
|
40
48
|
});
|
|
41
49
|
```
|
|
42
50
|
|
|
@@ -76,6 +84,15 @@ which is worse than a red one.
|
|
|
76
84
|
- **Assert your journey count.** Whatever the mechanism, put a check somewhere
|
|
77
85
|
that the number of scenarios you expect actually ran.
|
|
78
86
|
|
|
87
|
+
### What `open` must leave on screen
|
|
88
|
+
|
|
89
|
+
For a checkout shape, `open` returns with the buyer **on the Dados step**, the
|
|
90
|
+
store's checkout config already resolved, and every field the chain requires
|
|
91
|
+
filled in **except the CPF** — the packaged steps type the CPF when the form
|
|
92
|
+
asks for one, and press Continuar. Which other fields a chain requires (a mobile
|
|
93
|
+
phone, a name, an e-mail) is a fact about the store you built. A buyer with a
|
|
94
|
+
CPF on file skips Dados entirely, so do not arrive with one.
|
|
95
|
+
|
|
79
96
|
## `PaymentsStore` — the shapes a scenario asks for
|
|
80
97
|
|
|
81
98
|
A scenario names a kind of merchant; you decide how to produce one. A harness
|
|
@@ -87,12 +104,12 @@ files do not change either way.
|
|
|
87
104
|
`no-provider-remedy` · `payments-off` · `two-mintable` · `redirect-head` ·
|
|
88
105
|
`google-pay` · `apple-pay` · `apple-pay-unsupported` · `wallet` ·
|
|
89
106
|
`activation` · `screen-on-page` · `screen-handoff` · `screen-undeclared` ·
|
|
90
|
-
`screen-unknown`
|
|
107
|
+
`screen-unknown` · `setup-guide` · `reconnect-required`
|
|
91
108
|
|
|
92
109
|
Adding a member is a breaking change for hosts, deliberately: a scenario needing
|
|
93
110
|
a store nobody can build is a scenario that silently never runs.
|
|
94
111
|
|
|
95
|
-
`wallet` (added for FUT-183/FUT-478) is one of
|
|
112
|
+
`wallet` (added for FUT-183/FUT-478) is one of the members that are **not a
|
|
96
113
|
checkout**: `open(page, 'wallet')` must land the buyer on the package's
|
|
97
114
|
manage-cards surface (`screens.ManageCards` from `createPaymentFlows`) at a
|
|
98
115
|
store whose single provider can vault — the chain head declares the adapter
|
|
@@ -36,6 +36,18 @@ export declare function fillCard(page: Page, pan?: string): Promise<void>;
|
|
|
36
36
|
export declare function chooseCard(page: Page): Promise<void>;
|
|
37
37
|
/** Press the pay bar and wait for the submit to have actually left. */
|
|
38
38
|
export declare function payCard(page: Page): Promise<void>;
|
|
39
|
-
/**
|
|
39
|
+
/**
|
|
40
|
+
* Walk the Dados step and land on Pagamento.
|
|
41
|
+
*
|
|
42
|
+
* The CPF is typed only when the form ASKS for it (FUT-3627). The Dados step
|
|
43
|
+
* renders the fields the store's chain declares, and a chain whose providers
|
|
44
|
+
* need no tax id — InfinitePay's hosted checkout is one — renders no
|
|
45
|
+
* `buyer-cpf` at all. Demanding it made every hand-off journey unreachable in
|
|
46
|
+
* a real host; only the harness, whose hosted store declared a CPF it did not
|
|
47
|
+
* need, could walk past it.
|
|
48
|
+
*
|
|
49
|
+
* Whatever ELSE the form asks for is the host's to have filled in `open`:
|
|
50
|
+
* which fields a provider requires is a fact about the store, not the buyer.
|
|
51
|
+
*/
|
|
40
52
|
export declare function reachPayment(page: Page): Promise<void>;
|
|
41
53
|
//# sourceMappingURL=checkout.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"checkout.d.ts","sourceRoot":"","sources":["../../src/helpers/checkout.ts"],"names":[],"mappings":"AAAA,OAAO,EAAU,KAAK,IAAI,EAAE,MAAM,kBAAkB,CAAC;AAErD;;;;;;;;;;;;;GAaG;AAEH,gFAAgF;AAChF,eAAO,MAAM,SAAS,mBAAmB,CAAC;AAE1C,6EAA6E;AAC7E,eAAO,MAAM,QAAQ,wBAAwB,CAAC;AAE9C,+EAA+E;AAC/E,eAAO,MAAM,WAAW,wBAAwB,CAAC;AAKjD;;;;;;;GAOG;AACH,eAAO,MAAM,iBAAiB,YAAY,CAAC;AAE3C,iCAAiC;AACjC,wBAAsB,OAAO,CAAC,IAAI,EAAE,IAAI,EAAE,GAAG,GAAE,MAAkB,GAAG,OAAO,CAAC,IAAI,CAAC,CAEhF;AAED,2DAA2D;AAC3D,wBAAsB,QAAQ,CAAC,IAAI,EAAE,IAAI,EAAE,GAAG,GAAE,MAAiB,GAAG,OAAO,CAAC,IAAI,CAAC,CAKhF;AAED,6EAA6E;AAC7E,wBAAsB,UAAU,CAAC,IAAI,EAAE,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAG1D;AAED,uEAAuE;AACvE,wBAAsB,OAAO,CAAC,IAAI,EAAE,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAEvD;AAED
|
|
1
|
+
{"version":3,"file":"checkout.d.ts","sourceRoot":"","sources":["../../src/helpers/checkout.ts"],"names":[],"mappings":"AAAA,OAAO,EAAU,KAAK,IAAI,EAAE,MAAM,kBAAkB,CAAC;AAErD;;;;;;;;;;;;;GAaG;AAEH,gFAAgF;AAChF,eAAO,MAAM,SAAS,mBAAmB,CAAC;AAE1C,6EAA6E;AAC7E,eAAO,MAAM,QAAQ,wBAAwB,CAAC;AAE9C,+EAA+E;AAC/E,eAAO,MAAM,WAAW,wBAAwB,CAAC;AAKjD;;;;;;;GAOG;AACH,eAAO,MAAM,iBAAiB,YAAY,CAAC;AAE3C,iCAAiC;AACjC,wBAAsB,OAAO,CAAC,IAAI,EAAE,IAAI,EAAE,GAAG,GAAE,MAAkB,GAAG,OAAO,CAAC,IAAI,CAAC,CAEhF;AAED,2DAA2D;AAC3D,wBAAsB,QAAQ,CAAC,IAAI,EAAE,IAAI,EAAE,GAAG,GAAE,MAAiB,GAAG,OAAO,CAAC,IAAI,CAAC,CAKhF;AAED,6EAA6E;AAC7E,wBAAsB,UAAU,CAAC,IAAI,EAAE,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAG1D;AAED,uEAAuE;AACvE,wBAAsB,OAAO,CAAC,IAAI,EAAE,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAEvD;AAED;;;;;;;;;;;;GAYG;AACH,wBAAsB,YAAY,CAAC,IAAI,EAAE,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAK5D"}
|
package/dist/helpers/checkout.js
CHANGED
|
@@ -50,9 +50,24 @@ export async function chooseCard(page) {
|
|
|
50
50
|
export async function payCard(page) {
|
|
51
51
|
await page.getByTestId('card-pay').click();
|
|
52
52
|
}
|
|
53
|
-
/**
|
|
53
|
+
/**
|
|
54
|
+
* Walk the Dados step and land on Pagamento.
|
|
55
|
+
*
|
|
56
|
+
* The CPF is typed only when the form ASKS for it (FUT-3627). The Dados step
|
|
57
|
+
* renders the fields the store's chain declares, and a chain whose providers
|
|
58
|
+
* need no tax id — InfinitePay's hosted checkout is one — renders no
|
|
59
|
+
* `buyer-cpf` at all. Demanding it made every hand-off journey unreachable in
|
|
60
|
+
* a real host; only the harness, whose hosted store declared a CPF it did not
|
|
61
|
+
* need, could walk past it.
|
|
62
|
+
*
|
|
63
|
+
* Whatever ELSE the form asks for is the host's to have filled in `open`:
|
|
64
|
+
* which fields a provider requires is a fact about the store, not the buyer.
|
|
65
|
+
*/
|
|
54
66
|
export async function reachPayment(page) {
|
|
55
|
-
|
|
56
|
-
await
|
|
67
|
+
const proceed = page.getByTestId('checkout-continue');
|
|
68
|
+
await expect(proceed).toBeVisible();
|
|
69
|
+
if ((await page.getByTestId('buyer-cpf').count()) > 0)
|
|
70
|
+
await fillCpf(page);
|
|
71
|
+
await proceed.click();
|
|
57
72
|
}
|
|
58
73
|
//# sourceMappingURL=checkout.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"checkout.js","sourceRoot":"","sources":["../../src/helpers/checkout.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAa,MAAM,kBAAkB,CAAC;AAErD;;;;;;;;;;;;;GAaG;AAEH,gFAAgF;AAChF,MAAM,CAAC,MAAM,SAAS,GAAG,gBAAgB,CAAC;AAE1C,6EAA6E;AAC7E,MAAM,CAAC,MAAM,QAAQ,GAAG,qBAAqB,CAAC;AAE9C,+EAA+E;AAC/E,MAAM,CAAC,MAAM,WAAW,GAAG,qBAAqB,CAAC;AAEjD,4EAA4E;AAC5E,MAAM,iBAAiB,GAAG,OAAO,CAAC;AAElC;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,iBAAiB,GAAG,SAAS,CAAC;AAE3C,iCAAiC;AACjC,MAAM,CAAC,KAAK,UAAU,OAAO,CAAC,IAAU,EAAE,MAAc,SAAS;IAC/D,MAAM,IAAI,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAChD,CAAC;AAED,2DAA2D;AAC3D,MAAM,CAAC,KAAK,UAAU,QAAQ,CAAC,IAAU,EAAE,MAAc,QAAQ;IAC/D,MAAM,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAChD,MAAM,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;IAC7D,MAAM,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;IAC9D,MAAM,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AACjD,CAAC;AAED,6EAA6E;AAC7E,MAAM,CAAC,KAAK,UAAU,UAAU,CAAC,IAAU;IACzC,MAAM,IAAI,CAAC,WAAW,CAAC,sBAAsB,CAAC,CAAC,KAAK,EAAE,CAAC;IACvD,MAAM,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC;AAC5D,CAAC;AAED,uEAAuE;AACvE,MAAM,CAAC,KAAK,UAAU,OAAO,CAAC,IAAU;IACtC,MAAM,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC,KAAK,EAAE,CAAC;AAC7C,CAAC;AAED
|
|
1
|
+
{"version":3,"file":"checkout.js","sourceRoot":"","sources":["../../src/helpers/checkout.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAa,MAAM,kBAAkB,CAAC;AAErD;;;;;;;;;;;;;GAaG;AAEH,gFAAgF;AAChF,MAAM,CAAC,MAAM,SAAS,GAAG,gBAAgB,CAAC;AAE1C,6EAA6E;AAC7E,MAAM,CAAC,MAAM,QAAQ,GAAG,qBAAqB,CAAC;AAE9C,+EAA+E;AAC/E,MAAM,CAAC,MAAM,WAAW,GAAG,qBAAqB,CAAC;AAEjD,4EAA4E;AAC5E,MAAM,iBAAiB,GAAG,OAAO,CAAC;AAElC;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,iBAAiB,GAAG,SAAS,CAAC;AAE3C,iCAAiC;AACjC,MAAM,CAAC,KAAK,UAAU,OAAO,CAAC,IAAU,EAAE,MAAc,SAAS;IAC/D,MAAM,IAAI,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAChD,CAAC;AAED,2DAA2D;AAC3D,MAAM,CAAC,KAAK,UAAU,QAAQ,CAAC,IAAU,EAAE,MAAc,QAAQ;IAC/D,MAAM,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAChD,MAAM,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;IAC7D,MAAM,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;IAC9D,MAAM,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AACjD,CAAC;AAED,6EAA6E;AAC7E,MAAM,CAAC,KAAK,UAAU,UAAU,CAAC,IAAU;IACzC,MAAM,IAAI,CAAC,WAAW,CAAC,sBAAsB,CAAC,CAAC,KAAK,EAAE,CAAC;IACvD,MAAM,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC;AAC5D,CAAC;AAED,uEAAuE;AACvE,MAAM,CAAC,KAAK,UAAU,OAAO,CAAC,IAAU;IACtC,MAAM,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC,KAAK,EAAE,CAAC;AAC7C,CAAC;AAED;;;;;;;;;;;;GAYG;AACH,MAAM,CAAC,KAAK,UAAU,YAAY,CAAC,IAAU;IAC3C,MAAM,OAAO,GAAG,IAAI,CAAC,WAAW,CAAC,mBAAmB,CAAC,CAAC;IACtD,MAAM,MAAM,CAAC,OAAO,CAAC,CAAC,WAAW,EAAE,CAAC;IACpC,IAAI,CAAC,MAAM,IAAI,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC,KAAK,EAAE,CAAC,GAAG,CAAC;QAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IAC3E,MAAM,OAAO,CAAC,KAAK,EAAE,CAAC;AACxB,CAAC"}
|
package/dist/index.d.ts
CHANGED
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiCG;AACH,OAAO,EACL,mBAAmB,EACnB,aAAa,EACb,KAAK,gBAAgB,EACrB,KAAK,aAAa,EAClB,KAAK,iBAAiB,EACtB,KAAK,aAAa,GACnB,MAAM,YAAY,CAAC;AAEpB,OAAO,EAAE,gBAAgB,EAAE,oBAAoB,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAEnF;;;;;;GAMG;AACH,OAAO,EACL,2BAA2B,EAC3B,qBAAqB,EACrB,KAAK,uBAAuB,EAC5B,KAAK,qBAAqB,EAC1B,KAAK,wBAAwB,GAC9B,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EACL,wBAAwB,EACxB,4BAA4B,EAC5B,qBAAqB,GACtB,MAAM,YAAY,CAAC;AAEpB;;;;GAIG;AACH,OAAO,EACL,UAAU,EACV,WAAW,EACX,QAAQ,EACR,OAAO,EACP,QAAQ,EACR,OAAO,EACP,YAAY,EACZ,SAAS,GACV,MAAM,uBAAuB,CAAC"}
|
package/dist/index.js
CHANGED
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiCG;AACH,OAAO,EACL,mBAAmB,EACnB,aAAa,GAKd,MAAM,YAAY,CAAC;AAEpB,OAAO,EAAE,gBAAgB,EAAE,oBAAoB,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAEnF;;;;;;GAMG;AACH,OAAO,EACL,2BAA2B,EAC3B,qBAAqB,GAItB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EACL,wBAAwB,EACxB,4BAA4B,EAC5B,qBAAqB,GACtB,MAAM,YAAY,CAAC;AAEpB;;;;GAIG;AACH,OAAO,EACL,UAAU,EACV,WAAW,EACX,QAAQ,EACR,OAAO,EACP,QAAQ,EACR,OAAO,EACP,YAAY,EACZ,SAAS,GACV,MAAM,uBAAuB,CAAC"}
|
|
@@ -76,7 +76,9 @@ Then('ela vê o QR code do PIX', async ({ page }) => {
|
|
|
76
76
|
await expect(page.getByTestId('pix-qr')).toBeVisible();
|
|
77
77
|
});
|
|
78
78
|
Then('o código copia-e-cola veio do provedor', async ({ page }) => {
|
|
79
|
-
|
|
79
|
+
// The Banco Central GUI, in either case: the specification spells it in
|
|
80
|
+
// lowercase and many PSPs print it in capitals, and both are a real code.
|
|
81
|
+
await expect(page.getByTestId('pix-code')).toContainText(/br\.gov\.bcb\.pix/i);
|
|
80
82
|
});
|
|
81
83
|
Then('ela vê o formulário de cartão', async ({ page }) => {
|
|
82
84
|
await expect(page.getByTestId('card-view')).toBeVisible();
|
|
@@ -179,7 +181,14 @@ Then('nenhum tokensByProvider é enviado', async ({ page }) => {
|
|
|
179
181
|
});
|
|
180
182
|
Then('um instrumento foi gerado para cada provedor da cadeia', async ({ page }) => {
|
|
181
183
|
const { fixtures, wire } = paymentsWorld();
|
|
182
|
-
|
|
184
|
+
// A SET of instruments, in whatever order the client minted them (FUT-3627):
|
|
185
|
+
// a real checkout mints the chain concurrently, so the map's key order is
|
|
186
|
+
// the order the mints finished in — `stone,pagbank` on one run, the reverse
|
|
187
|
+
// on the next — and no reader of the map depends on it.
|
|
188
|
+
const expected = [fixtures.headProvider, fixtures.tailProvider].sort().join(',');
|
|
189
|
+
await expect
|
|
190
|
+
.poll(async () => ((await wire.tokensByProvider(page).textContent()) ?? '').split(',').sort().join(','))
|
|
191
|
+
.toBe(expected);
|
|
183
192
|
});
|
|
184
193
|
Then('os dois provedores receberam a cobrança', async ({ page }) => {
|
|
185
194
|
const { fixtures, wire } = paymentsWorld();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"compra.steps.js","sourceRoot":"","sources":["../../src/steps/compra.steps.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"compra.steps.js","sourceRoot":"","sources":["../../src/steps/compra.steps.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAE1C,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAEtF,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAE5C,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,eAAe,CAAC;AAE3C;;;;;;;;;;;;;;GAcG;AAEH,8EAA8E;AAC9E,2BAA2B;AAC3B,8EAA8E;AAE9E,IAAI,CAAC,4CAA4C,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE;IACpE,MAAM,YAAY,CAAC,IAAI,CAAC,CAAC;AAC3B,CAAC,CAAC,CAAC;AAEH,IAAI,CAAC,8BAA8B,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE;IACtD,4EAA4E;IAC5E,8EAA8E;IAC9E,MAAM,IAAI,CAAC,WAAW,CAAC,sBAAsB,CAAC,CAAC,KAAK,EAAE,CAAC;AACzD,CAAC,CAAC,CAAC;AAEH,IAAI,CAAC,wCAAwC,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE;IAChE,0EAA0E;IAC1E,4EAA4E;IAC5E,2EAA2E;IAC3E,MAAM,IAAI,CAAC,WAAW,CAAC,wBAAwB,CAAC,CAAC,KAAK,EAAE,CAAC;AAC3D,CAAC,CAAC,CAAC;AAEH,IAAI,CAAC,6BAA6B,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE;IACrD,MAAM,QAAQ,CAAC,IAAI,CAAC,CAAC;IACrB,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;AACtB,CAAC,CAAC,CAAC;AAEH,IAAI,CAAC,iCAAiC,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE;IACzD,MAAM,QAAQ,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC;IAClC,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;AACtB,CAAC,CAAC,CAAC;AAEH,IAAI,CAAC,mCAAmC,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE;IAC3D,2EAA2E;IAC3E,wEAAwE;IACxE,6EAA6E;IAC7E,4EAA4E;IAC5E,uDAAuD;IACvD,MAAM,aAAa,EAAE,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAC;AACjD,CAAC,CAAC,CAAC;AAEH,IAAI,CAAC,iCAAiC,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE;IACzD,yEAAyE;IACzE,8EAA8E;IAC9E,+DAA+D;IAC/D,MAAM,aAAa,EAAE,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAC;AACjD,CAAC,CAAC,CAAC;AAEH,8EAA8E;AAC9E,gBAAgB;AAChB,8EAA8E;AAE9E,IAAI,CAAC,sCAAsC,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE;IAC9D,sEAAsE;IACtE,8EAA8E;IAC9E,6EAA6E;IAC7E,MAAM,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,iBAAiB,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;IACjE,MAAM,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,qBAAqB,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;IACrE,MAAM,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,sBAAsB,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;AACxE,CAAC,CAAC,CAAC;AAEH,IAAI,CAAC,4BAA4B,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE;IACpD,MAAM,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,qBAAqB,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC;IACpE,MAAM,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,sBAAsB,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;AACxE,CAAC,CAAC,CAAC;AAEH,IAAI,CAAC,yBAAyB,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE;IACjD,MAAM,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC;IACzD,MAAM,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC;AACzD,CAAC,CAAC,CAAC;AAEH,IAAI,CAAC,wCAAwC,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE;IAChE,wEAAwE;IACxE,0EAA0E;IAC1E,MAAM,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC,CAAC,aAAa,CAAC,oBAAoB,CAAC,CAAC;AACjF,CAAC,CAAC,CAAC;AAEH,IAAI,CAAC,+BAA+B,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE;IACvD,MAAM,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC;AAC5D,CAAC,CAAC,CAAC;AAEH,IAAI,CAAC,wCAAwC,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE;IAChE,MAAM,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;IAC3D,MAAM,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;AAC/D,CAAC,CAAC,CAAC;AAEH,IAAI,CAAC,0BAA0B,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE;IAClD,MAAM,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,cAAc,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC;AAC/D,CAAC,CAAC,CAAC;AAEH,IAAI,CAAC,8BAA8B,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE;IACtD,MAAM,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,iBAAiB,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC;IAChE,MAAM,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,gBAAgB,CAAC,CAAC,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC;AAC1E,CAAC,CAAC,CAAC;AAEH,IAAI,CAAC,mBAAmB,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE;IAC3C,MAAM,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,gBAAgB,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC;AACjE,CAAC,CAAC,CAAC;AAEH,IAAI,CAAC,2BAA2B,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE;IACnD,MAAM,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,eAAe,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC;AAChE,CAAC,CAAC,CAAC;AAEH,IAAI,CAAC,wDAAwD,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE;IAChF,oEAAoE;IACpE,MAAM,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,iBAAiB,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC;AAClE,CAAC,CAAC,CAAC;AAEH,IAAI,CAAC,0CAA0C,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE;IAClE,2EAA2E;IAC3E,4EAA4E;IAC5E,eAAe;IACf,MAAM,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,cAAc,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;IAC9D,MAAM,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;AAC5D,CAAC,CAAC,CAAC;AAEH,IAAI,CAAC,qDAAqD,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE;IAC7E,MAAM,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,eAAe,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;IAC/D,MAAM,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,wBAAwB,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;AAC1E,CAAC,CAAC,CAAC;AAEH,IAAI,CAAC,qDAAqD,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE;IAC7E,MAAM,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,YAAY,CAAC,CAAC,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;IACrE,MAAM,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,YAAY,CAAC,CAAC,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;AACpE,CAAC,CAAC,CAAC;AAEH,IAAI,CAAC,8BAA8B,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE;IACtD,MAAM,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,qBAAqB,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC;AACtE,CAAC,CAAC,CAAC;AAEH,IAAI,CAAC,8CAA8C,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE;IACtE,MAAM,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,4BAA4B,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC;AAC7E,CAAC,CAAC,CAAC;AAEH,IAAI,CAAC,uCAAuC,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE;IAC/D,MAAM,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,0BAA0B,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC;IACzE,MAAM,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,iCAAiC,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC;AAClF,CAAC,CAAC,CAAC;AAEH,IAAI,CAAC,wCAAwC,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE;IAChE,MAAM,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,iBAAiB,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;IACjE,MAAM,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;IAC3D,MAAM,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;AAC5D,CAAC,CAAC,CAAC;AAEH,IAAI,CAAC,gDAAgD,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE;IACxE,MAAM,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,yBAAyB,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC;AAC1E,CAAC,CAAC,CAAC;AAEH,IAAI,CAAC,kDAAkD,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE;IAC1E,6EAA6E;IAC7E,oCAAoC;IACpC,MAAM,IAAI,GAAG,IAAI,CAAC,WAAW,CAAC,sBAAsB,CAAC,CAAC;IACtD,MAAM,MAAM,CAAC,IAAI,CAAC,CAAC,WAAW,EAAE,CAAC;IACjC,yEAAyE;IACzE,4EAA4E;IAC5E,4EAA4E;IAC5E,oBAAoB;IACpB,MAAM,MAAM,CAAC,IAAI,CAAC,CAAC,eAAe,CAChC,MAAM,EACN,IAAI,MAAM,CAAC,aAAa,EAAE,CAAC,QAAQ,CAAC,iBAAiB,CAAC,OAAO,CAAC,qBAAqB,EAAE,MAAM,CAAC,CAAC,CAC9F,CAAC;AACJ,CAAC,CAAC,CAAC;AAEH,IAAI,CAAC,8BAA8B,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE;IACtD,MAAM,MAAM,CAAC,aAAa,EAAE,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAC,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;AAC5E,CAAC,CAAC,CAAC;AAEH,8EAA8E;AAC9E,wBAAwB;AACxB,8EAA8E;AAE9E,IAAI,CAAC,mCAAmC,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE;IAC3D,2EAA2E;IAC3E,kDAAkD;IAClD,MAAM,MAAM,CAAC,aAAa,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,UAAU,CAAC,0BAA0B,CAAC,CAAC;AACxF,CAAC,CAAC,CAAC;AAEH,IAAI,CAAC,8DAA8D,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE;IACtF,6EAA6E;IAC7E,8EAA8E;IAC9E,0EAA0E;IAC1E,gEAAgE;IAChE,6DAA6D;IAC7D,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,GAAG,aAAa,EAAE,CAAC;IAC3C,MAAM,MAAM,CAAC,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC,CAAC,aAAa,CACpD,GAAG,QAAQ,CAAC,YAAY,SAAS,QAAQ,CAAC,KAAK,OAAO,CACvD,CAAC;AACJ,CAAC,CAAC,CAAC;AAEH,IAAI,CAAC,qEAAqE,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE;IAC7F,MAAM,EAAE,IAAI,EAAE,GAAG,aAAa,EAAE,CAAC;IACjC,MAAM,IAAI,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;IACnC,MAAM,MAAM,CAAC,IAAI,CAAC,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC;IAC5C,MAAM,MAAM,CAAC,IAAI,CAAC,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;IAC1C,MAAM,MAAM,CAAC,IAAI,CAAC,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;IAC1C,MAAM,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;AAClE,CAAC,CAAC,CAAC;AAEH,IAAI,CAAC,mCAAmC,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE;IAC3D,MAAM,MAAM,CAAC,aAAa,EAAE,CAAC,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC;AACnF,CAAC,CAAC,CAAC;AAEH,IAAI,CAAC,wDAAwD,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE;IAChF,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,GAAG,aAAa,EAAE,CAAC;IAC3C,6EAA6E;IAC7E,0EAA0E;IAC1E,4EAA4E;IAC5E,wDAAwD;IACxD,MAAM,QAAQ,GAAG,CAAC,QAAQ,CAAC,YAAY,EAAE,QAAQ,CAAC,YAAY,CAAC,CAAC,IAAI,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACjF,MAAM,MAAM;SACT,IAAI,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,CAAC,MAAM,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC,WAAW,EAAE,CAAC,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;SACvG,IAAI,CAAC,QAAQ,CAAC,CAAC;AACpB,CAAC,CAAC,CAAC;AAEH,IAAI,CAAC,yCAAyC,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE;IACjE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,GAAG,aAAa,EAAE,CAAC;IAC3C,MAAM,MAAM,CAAC,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;IAC7D,MAAM,MAAM,CAAC,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC,CAAC,aAAa,CAAC,GAAG,QAAQ,CAAC,YAAY,OAAO,CAAC,CAAC;IACxF,MAAM,MAAM,CAAC,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC,CAAC,aAAa,CAAC,GAAG,QAAQ,CAAC,YAAY,OAAO,CAAC,CAAC;AAC1F,CAAC,CAAC,CAAC;AAEH,IAAI,CAAC,0DAA0D,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE;IAClF,8EAA8E;IAC9E,0EAA0E;IAC1E,6EAA6E;IAC7E,MAAM,MAAM,CAAC,aAAa,EAAE,CAAC,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC,CAAC,UAAU,CAClE,aAAa,EAAE,CAAC,QAAQ,CAAC,YAAY,CACtC,CAAC;AACJ,CAAC,CAAC,CAAC;AAEH,IAAI,CAAC,6CAA6C,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE;IACrE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,GAAG,aAAa,EAAE,CAAC;IAC3C,MAAM,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,aAAa,CAAC,QAAQ,CAAC,iBAAiB,CAAC,CAAC;AAC/E,CAAC,CAAC,CAAC;AAEH,IAAI,CAAC,0CAA0C,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE;IAClE,2EAA2E;IAC3E,6EAA6E;IAC7E,mCAAmC;IACnC,2EAA2E;IAC3E,6EAA6E;IAC7E,0EAA0E;IAC1E,4EAA4E;IAC5E,uEAAuE;IACvE,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,GAAG,EAAE,CACtC,MAAM,CAAC,cAAc,CAAC,OAAO,CAAC,+BAA+B,CAAC,CAC/D,CAAC;IACF,MAAM,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,aAAa,EAAE,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;AAChE,CAAC,CAAC,CAAC"}
|
package/dist/steps/guia.steps.js
CHANGED
|
@@ -12,15 +12,33 @@ import { Given, Then } from './fixtures.js';
|
|
|
12
12
|
*
|
|
13
13
|
* Neither step names a brand. The positive one asks the host what it calls
|
|
14
14
|
* itself (`fixtures.platformBrand`) and requires exactly that to appear; the
|
|
15
|
-
* negative one requires that no
|
|
15
|
+
* negative one requires that no OTHER known adopter of this package appears.
|
|
16
16
|
* The second is the load-bearing one: a guide that interpolates the host once
|
|
17
17
|
* and hardcodes somebody else two steps later satisfies the first and is still
|
|
18
18
|
* the bug.
|
|
19
19
|
*/
|
|
20
|
-
/**
|
|
20
|
+
/**
|
|
21
|
+
* Products known to install this package. None but the host's OWN may reach a
|
|
22
|
+
* host's screen.
|
|
23
|
+
*/
|
|
21
24
|
// Built from base64-decoded halves so this shipped step file spells no
|
|
22
25
|
// adopter brand, whole or split — the brand gates sweep it like any source.
|
|
23
|
-
const ADOPTER_NAMES =
|
|
26
|
+
const ADOPTER_NAMES = [
|
|
27
|
+
new RegExp(`${atob('ZnV0dXJl')}[\\s_-]?${atob('cGF5')}`, 'i'),
|
|
28
|
+
/paladira/i,
|
|
29
|
+
];
|
|
30
|
+
/**
|
|
31
|
+
* The adopters that are somebody ELSE from where this host stands (FUT-3627).
|
|
32
|
+
*
|
|
33
|
+
* The list used to be one pattern applied to every host, which made the
|
|
34
|
+
* scenario fail BY CONSTRUCTION in every adopter on it: a host whose brand is
|
|
35
|
+
* on the list renders its own name — correctly, it is what the positive step
|
|
36
|
+
* demands — and the negative step then calls that a stranger's. A name the
|
|
37
|
+
* host's own `platformBrand` matches is that host's to print.
|
|
38
|
+
*/
|
|
39
|
+
function strangers(platformBrand) {
|
|
40
|
+
return ADOPTER_NAMES.filter((name) => !name.test(platformBrand));
|
|
41
|
+
}
|
|
24
42
|
/** The packaged guide surface — the same test id in every host. */
|
|
25
43
|
const GUIDE = 'payments-setup-guide';
|
|
26
44
|
Given('o lojista abre o passo a passo de um provedor com guia', async ({ page }) => {
|
|
@@ -32,6 +50,8 @@ Then('o passo a passo trata a plataforma pelo nome que o anfitrião deu', async
|
|
|
32
50
|
});
|
|
33
51
|
Then('a tela não cita nenhum outro produto que instale este pacote', async ({ page }) => {
|
|
34
52
|
const rendered = await page.getByTestId(GUIDE).innerText();
|
|
35
|
-
|
|
53
|
+
for (const name of strangers(paymentsWorld().fixtures.platformBrand)) {
|
|
54
|
+
expect(rendered).not.toMatch(name);
|
|
55
|
+
}
|
|
36
56
|
});
|
|
37
57
|
//# sourceMappingURL=guia.steps.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"guia.steps.js","sourceRoot":"","sources":["../../src/steps/guia.steps.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAE1C,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAE5C,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,eAAe,CAAC;AAE5C;;;;;;;;;;;;;;;GAeG;AAEH
|
|
1
|
+
{"version":3,"file":"guia.steps.js","sourceRoot":"","sources":["../../src/steps/guia.steps.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAE1C,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAE5C,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,eAAe,CAAC;AAE5C;;;;;;;;;;;;;;;GAeG;AAEH;;;GAGG;AACH,uEAAuE;AACvE,4EAA4E;AAC5E,MAAM,aAAa,GAAsB;IACvC,IAAI,MAAM,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC,WAAW,IAAI,CAAC,MAAM,CAAC,EAAE,EAAE,GAAG,CAAC;IAC7D,WAAW;CACZ,CAAC;AAEF;;;;;;;;GAQG;AACH,SAAS,SAAS,CAAC,aAAqB;IACtC,OAAO,aAAa,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC;AACnE,CAAC;AAED,mEAAmE;AACnE,MAAM,KAAK,GAAG,sBAAsB,CAAC;AAErC,KAAK,CAAC,wDAAwD,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE;IACjF,MAAM,aAAa,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,aAAa,CAAC,CAAC;IAChD,MAAM,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC;AACtD,CAAC,CAAC,CAAC;AAEH,IAAI,CAAC,kEAAkE,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE;IAC1F,MAAM,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC,aAAa,CAAC,aAAa,EAAE,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC;AAC9F,CAAC,CAAC,CAAC;AAEH,IAAI,CAAC,8DAA8D,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE;IACtF,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,SAAS,EAAE,CAAC;IAC3D,KAAK,MAAM,IAAI,IAAI,SAAS,CAAC,aAAa,EAAE,CAAC,QAAQ,CAAC,aAAa,CAAC,EAAE,CAAC;QACrE,MAAM,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IACrC,CAAC;AACH,CAAC,CAAC,CAAC"}
|
|
@@ -11,12 +11,16 @@ import { Given, Then, When } from './fixtures.js';
|
|
|
11
11
|
* These steps read two vocabularies, like the activation ones:
|
|
12
12
|
*
|
|
13
13
|
* - the package's OWN screens, whose test ids mean the same in any host —
|
|
14
|
-
* `payments-expiry-warning
|
|
15
|
-
*
|
|
16
|
-
* - the
|
|
17
|
-
*
|
|
14
|
+
* `payments-expiry-warning` and the reconnect banner the connection panel
|
|
15
|
+
* renders;
|
|
16
|
+
* - the HOST's success notice after a connect, `payments-connect-success`:
|
|
17
|
+
* the settings page leaves that banner to its host, so a host that adopts
|
|
18
|
+
* this journey renders it under that id, as the harness does;
|
|
19
|
+
* - the host's PROBE of its own stored row — `wire.connectionStatus`,
|
|
20
|
+
* `wire.connectionEnabled`, `wire.rotation` — which is how a scenario
|
|
18
21
|
* asserts that `enabled` and the rotation genuinely disagree rather than
|
|
19
|
-
* trusting a screen to say so.
|
|
22
|
+
* trusting a screen to say so. Port members since FUT-3627; they were
|
|
23
|
+
* harness test ids before, which no real host could know it owed.
|
|
20
24
|
*
|
|
21
25
|
* The provider is `fixtures.oauthProvider`, never a name written here: which
|
|
22
26
|
* row is dead belongs to the host's invented cast.
|
|
@@ -25,8 +29,8 @@ Given('a autorização da loja com o provedor foi recusada', async ({ page }) =>
|
|
|
25
29
|
await paymentsWorld().open(page, 'reconnect-required');
|
|
26
30
|
});
|
|
27
31
|
Then('a conexão aparece como precisando reconectar', async ({ page }) => {
|
|
28
|
-
const
|
|
29
|
-
await expect(page.
|
|
32
|
+
const { fixtures, wire } = paymentsWorld();
|
|
33
|
+
await expect(wire.connectionStatus(page, fixtures.oauthProvider)).toHaveText('RECONNECT_REQUIRED');
|
|
30
34
|
});
|
|
31
35
|
/**
|
|
32
36
|
* The disagreement IS the state. `enabled` true and the rotation empty at the
|
|
@@ -34,9 +38,9 @@ Then('a conexão aparece como precisando reconectar', async ({ page }) => {
|
|
|
34
38
|
* switch a live store back on.
|
|
35
39
|
*/
|
|
36
40
|
Then('ela continua ligada, mas fora da rotação', async ({ page }) => {
|
|
37
|
-
const
|
|
38
|
-
await expect(page.
|
|
39
|
-
await expect(
|
|
41
|
+
const { fixtures, wire } = paymentsWorld();
|
|
42
|
+
await expect(wire.connectionEnabled(page, fixtures.oauthProvider)).toHaveText('true');
|
|
43
|
+
await expect(wire.rotation(page)).toHaveText('(none)');
|
|
40
44
|
});
|
|
41
45
|
When('o lojista abre a conexão do provedor', async ({ page }) => {
|
|
42
46
|
const provider = paymentsWorld().fixtures.oauthProvider;
|
|
@@ -53,12 +57,12 @@ Then('ele vê desde quando', async ({ page }) => {
|
|
|
53
57
|
});
|
|
54
58
|
When('ele reconecta e autoriza de novo', async ({ page }) => {
|
|
55
59
|
await page.getByRole('button', { name: 'Reconectar' }).click();
|
|
56
|
-
await
|
|
60
|
+
await paymentsWorld().authorizeOAuth(page);
|
|
57
61
|
await expect(page.getByTestId('payments-connect-success')).toBeVisible();
|
|
58
62
|
});
|
|
59
63
|
Then('a conexão volta a estar verificada', async ({ page }) => {
|
|
60
|
-
const
|
|
61
|
-
await expect(page.
|
|
64
|
+
const { fixtures, wire } = paymentsWorld();
|
|
65
|
+
await expect(wire.connectionStatus(page, fixtures.oauthProvider)).toHaveText('VERIFIED');
|
|
62
66
|
});
|
|
63
67
|
/**
|
|
64
68
|
* The whole point of the ticket: rotation returns on the authorize alone. If a
|
|
@@ -66,9 +70,9 @@ Then('a conexão volta a estar verificada', async ({ page }) => {
|
|
|
66
70
|
* silently not selling.
|
|
67
71
|
*/
|
|
68
72
|
Then('a loja volta para a rotação sem ninguém ter mexido no botão', async ({ page }) => {
|
|
69
|
-
const
|
|
70
|
-
await expect(
|
|
71
|
-
await expect(page.
|
|
73
|
+
const { fixtures, wire } = paymentsWorld();
|
|
74
|
+
await expect(wire.rotation(page)).toHaveText(fixtures.oauthProvider);
|
|
75
|
+
await expect(wire.connectionEnabled(page, fixtures.oauthProvider)).toHaveText('true');
|
|
72
76
|
});
|
|
73
77
|
Then('o aviso de autorização expirada some', async ({ page }) => {
|
|
74
78
|
await expect(page.getByText('A autorização expirou ou foi revogada.')).toBeHidden();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"reconexao.steps.js","sourceRoot":"","sources":["../../src/steps/reconexao.steps.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAE1C,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAE5C,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,eAAe,CAAC;AAElD
|
|
1
|
+
{"version":3,"file":"reconexao.steps.js","sourceRoot":"","sources":["../../src/steps/reconexao.steps.ts"],"names":[],"mappings":"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"}
|
package/dist/world.d.ts
CHANGED
|
@@ -29,7 +29,11 @@ import type { Page } from '@playwright/test';
|
|
|
29
29
|
export type PaymentsStore =
|
|
30
30
|
/** One provider, PIX only — the simplest store there is. */
|
|
31
31
|
'pix-only'
|
|
32
|
-
/**
|
|
32
|
+
/**
|
|
33
|
+
* One provider that mints card instruments in the browser. It may offer PIX
|
|
34
|
+
* too: the scenarios choose the card tile before typing (FUT-3627), since no
|
|
35
|
+
* shipped adapter is card-only and a sole-method picker still renders it.
|
|
36
|
+
*/
|
|
33
37
|
| 'card'
|
|
34
38
|
/** One provider offering both methods. */
|
|
35
39
|
| 'both-methods'
|
|
@@ -195,10 +199,41 @@ export interface PaymentsWireProbe {
|
|
|
195
199
|
providerChargeCount(page: Page): ReturnType<Page['getByTestId']>;
|
|
196
200
|
/** Where the host was asked to navigate, on a hand-off. */
|
|
197
201
|
navigated(page: Page): ReturnType<Page['getByTestId']>;
|
|
202
|
+
/**
|
|
203
|
+
* The STORED status of one provider connection — `VERIFIED`,
|
|
204
|
+
* `RECONNECT_REQUIRED`… — as the host's own row has it, not as a screen
|
|
205
|
+
* words it (FUT-3627: these three were read by the reconnection journey
|
|
206
|
+
* from test ids only the harness rendered, and declared nowhere).
|
|
207
|
+
*/
|
|
208
|
+
connectionStatus(page: Page, provider: string): ReturnType<Page['getByTestId']>;
|
|
209
|
+
/** That connection's stored `enabled` flag, as the text `true` or `false`. */
|
|
210
|
+
connectionEnabled(page: Page, provider: string): ReturnType<Page['getByTestId']>;
|
|
211
|
+
/**
|
|
212
|
+
* The providers a NEW checkout would route to, comma-separated in order, or
|
|
213
|
+
* `(none)` — the rotation the config read actually computes. Asserted next
|
|
214
|
+
* to {@link connectionEnabled} because a dead grant is exactly the state
|
|
215
|
+
* where the two disagree.
|
|
216
|
+
*/
|
|
217
|
+
rotation(page: Page): ReturnType<Page['getByTestId']>;
|
|
198
218
|
}
|
|
199
219
|
/** Everything a host supplies to run the packaged journeys. */
|
|
200
220
|
export interface PaymentsWorld {
|
|
201
|
-
/**
|
|
221
|
+
/**
|
|
222
|
+
* Put the browser on a checkout for a store of this shape.
|
|
223
|
+
*
|
|
224
|
+
* For a checkout shape that means ON THE DADOS STEP, with every field the
|
|
225
|
+
* chain requires already filled EXCEPT the CPF (FUT-3627): `reachPayment`
|
|
226
|
+
* types the CPF when the form asks for one and presses Continuar, and
|
|
227
|
+
* nothing else. Which fields a chain requires — InfinitePay's mobile phone,
|
|
228
|
+
* Stripe's name and e-mail — is a fact about the store the host built, so
|
|
229
|
+
* the host answers it. A buyer with a CPF on file skips Dados altogether;
|
|
230
|
+
* the host must not arrive with one.
|
|
231
|
+
*
|
|
232
|
+
* And return only once the store's checkout CONFIG has resolved. Dados
|
|
233
|
+
* draws before it arrives, defaulting to a required CPF; a host that fetches
|
|
234
|
+
* its config (any real one) would otherwise hand `reachPayment` a CPF field
|
|
235
|
+
* that vanishes as the chain lands.
|
|
236
|
+
*/
|
|
202
237
|
open(page: Page, store: PaymentsStore): Promise<void>;
|
|
203
238
|
/** Raise a hosted payable and show the hand-off interstitial. */
|
|
204
239
|
raiseHostedPayable(page: Page): Promise<void>;
|
|
@@ -206,6 +241,16 @@ export interface PaymentsWorld {
|
|
|
206
241
|
returnFromProvider(page: Page): Promise<void>;
|
|
207
242
|
/** The terminal status the return leg settles to. */
|
|
208
243
|
hostedReturnStatus(page: Page): ReturnType<Page['getByTestId']>;
|
|
244
|
+
/**
|
|
245
|
+
* Play the provider's OAuth consent screen and come back (FUT-3627).
|
|
246
|
+
*
|
|
247
|
+
* Called after the owner pressed the package's own "Reconectar": whatever
|
|
248
|
+
* the host does to get a grant — a fake authorize page in a harness, a
|
|
249
|
+
* stubbed exchange in an app — ends on the provider panel again, where the
|
|
250
|
+
* host's `payments-connect-success` notice is asserted. Declared here because the consent
|
|
251
|
+
* screen is the PROVIDER's, which no package component renders.
|
|
252
|
+
*/
|
|
253
|
+
authorizeOAuth(page: Page): Promise<void>;
|
|
209
254
|
fixtures: PaymentsFixtures;
|
|
210
255
|
wire: PaymentsWireProbe;
|
|
211
256
|
}
|
package/dist/world.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"world.d.ts","sourceRoot":"","sources":["../src/world.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AAE7C;;;;;;;;;;;;;GAaG;AAEH;;;;;;;;;;;;GAYG;AACH,MAAM,MAAM,aAAa;AACvB,4DAA4D;AAC1D,UAAU;AACZ
|
|
1
|
+
{"version":3,"file":"world.d.ts","sourceRoot":"","sources":["../src/world.ts"],"names":[],"mappings":"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"}
|
package/dist/world.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"world.js","sourceRoot":"","sources":["../src/world.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"world.js","sourceRoot":"","sources":["../src/world.ts"],"names":[],"mappings":"AAsQA,IAAI,SAAS,GAAyB,IAAI,CAAC;AAE3C;;;;GAIG;AACH,MAAM,UAAU,mBAAmB,CAAC,KAAoB;IACtD,SAAS,GAAG,KAAK,CAAC;AACpB,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,aAAa;IAC3B,IAAI,CAAC,SAAS,EAAE,CAAC;QACf,MAAM,IAAI,KAAK,CACb,0EAA0E;YACxE,0EAA0E,CAC7E,CAAC;IACJ,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC"}
|
|
@@ -15,6 +15,7 @@ Feature: A compra sobrevive ao primeiro provedor falhar
|
|
|
15
15
|
Scenario: O primeiro provedor cai e o segundo cobra, sem redigitar nada
|
|
16
16
|
Given a loja tem dois provedores que geram token no navegador
|
|
17
17
|
When ela informa o CPF e segue para o pagamento
|
|
18
|
+
And ela escolhe pagar com cartão
|
|
18
19
|
And ela paga com um cartão novo
|
|
19
20
|
Then o pagamento é confirmado
|
|
20
21
|
And um instrumento foi gerado para cada provedor da cadeia
|
|
@@ -10,6 +10,7 @@ Feature: Comprando com Apple Pay
|
|
|
10
10
|
Scenario: A compra inteira acontece pela carteira
|
|
11
11
|
Given a compradora abre o checkout de uma loja com Apple Pay
|
|
12
12
|
When ela informa o CPF e segue para o pagamento
|
|
13
|
+
And ela escolhe pagar com cartão
|
|
13
14
|
Then ela vê o botão do Apple Pay
|
|
14
15
|
And ela vê o formulário de cartão
|
|
15
16
|
When ela paga com o Apple Pay
|
|
@@ -19,6 +20,7 @@ Feature: Comprando com Apple Pay
|
|
|
19
20
|
Scenario: Sem Apple Pay no aparelho, o cartão continua fazendo a venda
|
|
20
21
|
Given a compradora abre o checkout da loja com Apple Pay num aparelho sem Apple Pay
|
|
21
22
|
When ela informa o CPF e segue para o pagamento
|
|
23
|
+
And ela escolhe pagar com cartão
|
|
22
24
|
Then nenhum botão do Apple Pay é mostrado
|
|
23
25
|
And ela vê o formulário de cartão
|
|
24
26
|
When ela paga com um cartão novo
|
|
@@ -11,6 +11,7 @@ Feature: Comprando com cartão
|
|
|
11
11
|
|
|
12
12
|
Scenario: O cartão é cobrado e o CPF chega ao provedor
|
|
13
13
|
When ela informa o CPF e segue para o pagamento
|
|
14
|
+
And ela escolhe pagar com cartão
|
|
14
15
|
Then ela vê o formulário de cartão
|
|
15
16
|
When ela paga com um cartão novo
|
|
16
17
|
Then o pagamento é confirmado
|
|
@@ -19,6 +20,7 @@ Feature: Comprando com cartão
|
|
|
19
20
|
|
|
20
21
|
Scenario: Uma loja com um provedor só não envia tokensByProvider
|
|
21
22
|
When ela informa o CPF e segue para o pagamento
|
|
23
|
+
And ela escolhe pagar com cartão
|
|
22
24
|
And ela paga com um cartão novo
|
|
23
25
|
Then o pagamento é confirmado
|
|
24
26
|
And nenhum tokensByProvider é enviado
|
|
@@ -10,6 +10,7 @@ Feature: Comprando com Google Pay
|
|
|
10
10
|
Scenario: A compra inteira acontece pela carteira
|
|
11
11
|
Given a compradora abre o checkout de uma loja com Google Pay
|
|
12
12
|
When ela informa o CPF e segue para o pagamento
|
|
13
|
+
And ela escolhe pagar com cartão
|
|
13
14
|
Then ela vê o botão do Google Pay
|
|
14
15
|
And ela vê o formulário de cartão
|
|
15
16
|
When ela paga com o Google Pay
|
|
@@ -19,5 +20,6 @@ Feature: Comprando com Google Pay
|
|
|
19
20
|
Scenario: Uma loja sem carteira nunca mostra o botão
|
|
20
21
|
Given a compradora abre o checkout da loja de cartão
|
|
21
22
|
When ela informa o CPF e segue para o pagamento
|
|
23
|
+
And ela escolhe pagar com cartão
|
|
22
24
|
Then nenhum botão do Google Pay é mostrado
|
|
23
25
|
And ela vê o formulário de cartão
|
package/package.json
CHANGED
|
@@ -1,7 +1,11 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@12-apps/payments-e2e",
|
|
3
|
-
"version": "2.
|
|
3
|
+
"version": "2.7.0",
|
|
4
4
|
"type": "module",
|
|
5
|
+
"sideEffects": [
|
|
6
|
+
"**/steps-platform/**",
|
|
7
|
+
"**/steps/**"
|
|
8
|
+
],
|
|
5
9
|
"description": "The payments buyer journeys, as Gherkin a host runs against its own app",
|
|
6
10
|
"repository": {
|
|
7
11
|
"type": "git",
|
|
@@ -37,8 +41,8 @@
|
|
|
37
41
|
"playwright-bdd": ">=8.0.0"
|
|
38
42
|
},
|
|
39
43
|
"devDependencies": {
|
|
40
|
-
"@12-apps/eslint-config": "^1.
|
|
41
|
-
"@12-apps/typescript-config": "^1.
|
|
44
|
+
"@12-apps/eslint-config": "^1.22.0",
|
|
45
|
+
"@12-apps/typescript-config": "^1.21.0",
|
|
42
46
|
"@playwright/test": "^1.56.1",
|
|
43
47
|
"playwright-bdd": "^8.4.1",
|
|
44
48
|
"typescript": "5.9.2"
|