@12-apps/payments-e2e 2.7.0 → 2.9.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/dist/steps/carteira.steps.js +65 -14
- package/dist/steps/carteira.steps.js.map +1 -1
- package/dist/world.d.ts +8 -3
- package/dist/world.d.ts.map +1 -1
- package/dist/world.js.map +1 -1
- package/features/comprando-com-apple-pay.feature +13 -14
- package/features/comprando-com-google-pay.feature +13 -10
- package/package.json +1 -1
|
@@ -1,13 +1,16 @@
|
|
|
1
1
|
import { expect } from '@playwright/test';
|
|
2
|
+
import { VALID_CPF, fillCard } from '../helpers/checkout.js';
|
|
2
3
|
import { paymentsWorld } from '../world.js';
|
|
3
4
|
import { Given, Then, When } from './fixtures.js';
|
|
4
5
|
/**
|
|
5
|
-
* PAYING WITH A DIGITAL WALLET (FUT-471
|
|
6
|
+
* PAYING WITH A DIGITAL WALLET (FUT-471, FUT-472, FUT-3685).
|
|
6
7
|
*
|
|
7
|
-
*
|
|
8
|
-
*
|
|
9
|
-
* wallet
|
|
10
|
-
*
|
|
8
|
+
* A wallet store opens on the ONE list (`paymentList`): the CPF asked once at
|
|
9
|
+
* the top, then "PAGAMENTO RÁPIDO" — the wallet buttons — above the rows. The
|
|
10
|
+
* wallet is not a fourth method: its press opens the sheet and raises a CARD
|
|
11
|
+
* order behind it, and never changes the chosen row. A store that does NOT
|
|
12
|
+
* declare a wallet may still be a tabs checkout, so the steps that assert an
|
|
13
|
+
* absence look for both shapes of the button.
|
|
11
14
|
*
|
|
12
15
|
* The button element itself is rendered by the wallet's own script (brand
|
|
13
16
|
* rules), inside the package's `google-pay-button` container — a host
|
|
@@ -15,6 +18,14 @@ import { Given, Then, When } from './fixtures.js';
|
|
|
15
18
|
* the checkout loads, which the shipped button picks up without a network
|
|
16
19
|
* request.
|
|
17
20
|
*/
|
|
21
|
+
/**
|
|
22
|
+
* The list's top (the CPF and "PAGAMENTO RÁPIDO") is a chunk of its own
|
|
23
|
+
* (FUT-3711): wait for it to land before asking what it shows — an absence
|
|
24
|
+
* read while it loads proves nothing, and a field looked for then is missed.
|
|
25
|
+
*/
|
|
26
|
+
async function topSettled(page) {
|
|
27
|
+
await expect(page.getByTestId('list-top-loading')).toHaveCount(0);
|
|
28
|
+
}
|
|
18
29
|
Given('a compradora abre o checkout de uma loja com Google Pay', async ({ page }) => {
|
|
19
30
|
await paymentsWorld().open(page, 'google-pay');
|
|
20
31
|
});
|
|
@@ -25,23 +36,63 @@ Given('a compradora abre o checkout de uma loja com Apple Pay', async ({ page })
|
|
|
25
36
|
Given('a compradora abre o checkout da loja com Apple Pay num aparelho sem Apple Pay', async ({ page }) => {
|
|
26
37
|
await paymentsWorld().open(page, 'apple-pay-unsupported');
|
|
27
38
|
});
|
|
28
|
-
When('ela
|
|
29
|
-
|
|
39
|
+
When('ela informa o CPF no topo do pagamento', async ({ page }) => {
|
|
40
|
+
// Asked once, above the wallets — never a Dados step first (FUT-3685).
|
|
41
|
+
await expect(page.getByTestId('payment-list')).toBeVisible();
|
|
42
|
+
await topSettled(page);
|
|
43
|
+
const cpf = page.getByTestId('list-buyer-taxId');
|
|
44
|
+
if ((await cpf.count()) > 0)
|
|
45
|
+
await cpf.fill(VALID_CPF);
|
|
46
|
+
});
|
|
47
|
+
When('ela paga com o Google Pay em pagamento rápido', async ({ page }) => {
|
|
48
|
+
// Google's own button, drawn inside the package's mount point.
|
|
49
|
+
await page.getByTestId('list-google-pay').getByRole('button').click();
|
|
50
|
+
});
|
|
51
|
+
When('ela paga com o Apple Pay em pagamento rápido', async ({ page }) => {
|
|
52
|
+
await page.getByTestId('list-apple-pay').click();
|
|
53
|
+
});
|
|
54
|
+
When('ela paga com um cartão novo pela lista', async ({ page }) => {
|
|
55
|
+
await page.getByTestId('list-option-CARD-radio').check();
|
|
56
|
+
await fillCard(page);
|
|
57
|
+
// "Pagar" turns into the five-second bar; nothing is sent until it fills.
|
|
58
|
+
await page.getByTestId('list-pay').click();
|
|
59
|
+
await expect(page.getByTestId('list-charge-bar')).toBeVisible();
|
|
30
60
|
});
|
|
31
|
-
|
|
32
|
-
|
|
61
|
+
Then('a carteira espera o CPF', async ({ page }) => {
|
|
62
|
+
// Held, with the bar's own reason under the buttons — the sheet cannot ask for it.
|
|
63
|
+
// Each button stays reachable, disabled and described by that reason.
|
|
64
|
+
await expect(page.getByTestId('list-wallets-held')).toBeVisible();
|
|
65
|
+
for (const button of await page.getByTestId('list-wallet-buttons').getByRole('button').all()) {
|
|
66
|
+
await expect(button).toBeDisabled();
|
|
67
|
+
}
|
|
33
68
|
});
|
|
34
|
-
Then('ela vê o botão do Google Pay', async ({ page }) => {
|
|
35
|
-
await expect(page.getByTestId('
|
|
69
|
+
Then('ela vê o botão do Google Pay em pagamento rápido', async ({ page }) => {
|
|
70
|
+
await expect(page.getByTestId('list-wallets')).toBeVisible();
|
|
71
|
+
await expect(page.getByTestId('list-google-pay')).toBeVisible();
|
|
72
|
+
await expect(page.getByTestId('list-google-pay').getByRole('button')).toBeEnabled();
|
|
73
|
+
});
|
|
74
|
+
Then('ela vê o botão do Apple Pay em pagamento rápido', async ({ page }) => {
|
|
75
|
+
await expect(page.getByTestId('list-wallets')).toBeVisible();
|
|
76
|
+
await expect(page.getByTestId('list-apple-pay')).toBeEnabled();
|
|
77
|
+
});
|
|
78
|
+
Then('as formas de pagar continuam abaixo da carteira', async ({ page }) => {
|
|
79
|
+
// The wallet is a shortcut above the rows, not a replacement for them.
|
|
80
|
+
await expect(page.getByTestId('list-option-CARD')).toBeVisible();
|
|
81
|
+
});
|
|
82
|
+
Then('não há pagamento rápido na tela', async ({ page }) => {
|
|
83
|
+
await topSettled(page);
|
|
84
|
+
// No heading, no buttons, no divider — not an empty block.
|
|
85
|
+
await expect(page.getByTestId('list-wallets')).toHaveCount(0);
|
|
36
86
|
});
|
|
37
87
|
Then('nenhum botão do Google Pay é mostrado', async ({ page }) => {
|
|
88
|
+
await topSettled(page);
|
|
38
89
|
await expect(page.getByTestId('google-pay-button')).toHaveCount(0);
|
|
39
|
-
|
|
40
|
-
Then('ela vê o botão do Apple Pay', async ({ page }) => {
|
|
41
|
-
await expect(page.getByTestId('apple-pay-button')).toBeVisible();
|
|
90
|
+
await expect(page.getByTestId('list-google-pay')).toHaveCount(0);
|
|
42
91
|
});
|
|
43
92
|
Then('nenhum botão do Apple Pay é mostrado', async ({ page }) => {
|
|
93
|
+
await topSettled(page);
|
|
44
94
|
await expect(page.getByTestId('apple-pay-button')).toHaveCount(0);
|
|
95
|
+
await expect(page.getByTestId('list-apple-pay')).toHaveCount(0);
|
|
45
96
|
});
|
|
46
97
|
Then('a cobrança enviada ao provedor carrega a carteira do Google', async ({ page }) => {
|
|
47
98
|
// What the PROVIDER received, not what the client recorded sending: hosts
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"carteira.steps.js","sourceRoot":"","sources":["../../src/steps/carteira.steps.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"carteira.steps.js","sourceRoot":"","sources":["../../src/steps/carteira.steps.ts"],"names":[],"mappings":"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"}
|
package/dist/world.d.ts
CHANGED
|
@@ -64,20 +64,25 @@ export type PaymentsStore =
|
|
|
64
64
|
* capability, the PAYMENT_GATEWAY parameters, a merchant id — and a page
|
|
65
65
|
* where `google.payments.api` answers, which the host provides by
|
|
66
66
|
* installing a stub of it before the checkout loads (the shipped button
|
|
67
|
-
* uses an installed global without touching the network).
|
|
67
|
+
* uses an installed global without touching the network). Its checkout is
|
|
68
|
+
* the ONE list (`paymentList`, with `totalCents`), the buyer arrives with no
|
|
69
|
+
* CPF on file, and the order raised behind the sheet costs what the sheet
|
|
70
|
+
* showed (FUT-3685).
|
|
68
71
|
*/
|
|
69
72
|
| 'google-pay'
|
|
70
73
|
/**
|
|
71
74
|
* A store whose chain head declares Apple Pay (FUT-472), opened on a device
|
|
72
75
|
* that HAS it: the host provides a page where `window.ApplePaySession`
|
|
73
76
|
* exists and `canMakePayments()` answers true (a stub, outside Safari),
|
|
74
|
-
* plus a merchant-validation port that answers a session.
|
|
77
|
+
* plus a merchant-validation port that answers a session. Its checkout is
|
|
78
|
+
* the ONE list, as for `google-pay` (FUT-3685).
|
|
75
79
|
*/
|
|
76
80
|
| 'apple-pay'
|
|
77
81
|
/**
|
|
78
82
|
* The SAME Apple Pay store on a device WITHOUT Apple Pay (every non-Safari
|
|
79
83
|
* browser): no `ApplePaySession` global. The scenario this hosts is the
|
|
80
|
-
* fallback rule — no
|
|
84
|
+
* fallback rule — no wallet block, and the list's card row stays the way to
|
|
85
|
+
* pay.
|
|
81
86
|
*/
|
|
82
87
|
| 'apple-pay-unsupported'
|
|
83
88
|
/**
|
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;;;;GAIG;GACD,MAAM;AACR,0CAA0C;GACxC,cAAc;AAChB,qDAAqD;GACnD,QAAQ;AACV,iFAAiF;GAC/E,UAAU;AACZ,+CAA+C;GAC7C,SAAS;AACX,yDAAyD;GACvD,UAAU;AACZ,sEAAsE;GACpE,YAAY;AACd,iEAAiE;GAC/D,aAAa;AACf,oCAAoC;GAClC,aAAa;AACf,6DAA6D;GAC3D,oBAAoB;AACtB,yEAAyE;GACvE,cAAc;AAChB,mDAAmD;GACjD,cAAc;AAChB,gEAAgE;GAC9D,eAAe;AACjB
|
|
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":"AA2QA,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"}
|
|
@@ -1,27 +1,26 @@
|
|
|
1
1
|
@journey @apple-pay
|
|
2
2
|
Feature: Comprando com Apple Pay
|
|
3
3
|
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
a
|
|
7
|
-
|
|
8
|
-
|
|
4
|
+
A carteira fica no topo do pagamento, em "Pagamento rápido", acima das
|
|
5
|
+
formas de pagar. A sessão da Apple começa dentro do toque — o Safari só abre
|
|
6
|
+
a folha assim —, já com o valor a pagar, e o pedido nasce por trás dela. O
|
|
7
|
+
provedor processa Apple Pay só para Visa e Mastercard, então a folha da Apple
|
|
8
|
+
oferece só essas bandeiras. E a carteira é um atalho, nunca o único caminho:
|
|
9
|
+
num aparelho sem Apple Pay o bloco simplesmente não existe e o cartão da
|
|
10
|
+
lista continua fazendo a venda.
|
|
9
11
|
|
|
10
12
|
Scenario: A compra inteira acontece pela carteira
|
|
11
13
|
Given a compradora abre o checkout de uma loja com Apple Pay
|
|
12
|
-
When ela informa o CPF
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
And ela vê o formulário de cartão
|
|
16
|
-
When ela paga com o Apple Pay
|
|
14
|
+
When ela informa o CPF no topo do pagamento
|
|
15
|
+
Then ela vê o botão do Apple Pay em pagamento rápido
|
|
16
|
+
When ela paga com o Apple Pay em pagamento rápido
|
|
17
17
|
Then o pagamento é confirmado
|
|
18
18
|
And a cobrança enviada ao provedor carrega a carteira da Apple
|
|
19
19
|
|
|
20
20
|
Scenario: Sem Apple Pay no aparelho, o cartão continua fazendo a venda
|
|
21
21
|
Given a compradora abre o checkout da loja com Apple Pay num aparelho sem Apple Pay
|
|
22
|
-
When ela informa o CPF
|
|
23
|
-
And ela escolhe pagar com cartão
|
|
22
|
+
When ela informa o CPF no topo do pagamento
|
|
24
23
|
Then nenhum botão do Apple Pay é mostrado
|
|
25
|
-
And
|
|
26
|
-
When ela paga com um cartão novo
|
|
24
|
+
And não há pagamento rápido na tela
|
|
25
|
+
When ela paga com um cartão novo pela lista
|
|
27
26
|
Then o pagamento é confirmado
|
|
@@ -1,19 +1,22 @@
|
|
|
1
1
|
@journey @google-pay
|
|
2
2
|
Feature: Comprando com Google Pay
|
|
3
3
|
|
|
4
|
-
A carteira
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
4
|
+
A carteira fica no topo do pagamento, em "Pagamento rápido", acima das
|
|
5
|
+
formas de pagar — não é mais uma opção da lista. Um toque abre a folha do
|
|
6
|
+
Google já com o valor a pagar, e o pedido nasce por trás dela; a folha é a
|
|
7
|
+
confirmação. O CPF é pedido uma vez, no topo, porque o provedor exige o CPF
|
|
8
|
+
em todo pedido e a folha do Google não o informa. O botão só existe quando a
|
|
9
|
+
loja declarou a carteira E o aparelho disse que consegue pagar — um botão que
|
|
10
|
+
leva a compradora até a folha para depois recusar a cobrança é pior do que
|
|
11
|
+
nenhum botão.
|
|
9
12
|
|
|
10
13
|
Scenario: A compra inteira acontece pela carteira
|
|
11
14
|
Given a compradora abre o checkout de uma loja com Google Pay
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
Then ela vê o botão do Google Pay
|
|
15
|
-
And
|
|
16
|
-
When ela paga com o Google Pay
|
|
15
|
+
Then a carteira espera o CPF
|
|
16
|
+
When ela informa o CPF no topo do pagamento
|
|
17
|
+
Then ela vê o botão do Google Pay em pagamento rápido
|
|
18
|
+
And as formas de pagar continuam abaixo da carteira
|
|
19
|
+
When ela paga com o Google Pay em pagamento rápido
|
|
17
20
|
Then o pagamento é confirmado
|
|
18
21
|
And a cobrança enviada ao provedor carrega a carteira do Google
|
|
19
22
|
|