@12-apps/payments-e2e 2.3.0 → 2.5.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/manifest/index.d.ts +71 -0
- package/dist/manifest/index.d.ts.map +1 -0
- package/dist/manifest/index.js +67 -0
- package/dist/manifest/index.js.map +1 -0
- package/dist/steps/reconexao.steps.js +27 -0
- package/dist/steps/reconexao.steps.js.map +1 -1
- package/features/a-autorizacao-que-morreu.feature +9 -0
- package/package.json +5 -1
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `@12-apps/payments-e2e/manifest` — the SHARED wiring manifest.
|
|
3
|
+
*
|
|
4
|
+
* ## Why this package has one at all
|
|
5
|
+
*
|
|
6
|
+
* `@12-apps/payments-backend`'s manifest narrows `e2e` away, correctly: the
|
|
7
|
+
* journeys ship HERE, and a manifest must not declare an entry another package
|
|
8
|
+
* exports. But the narrowing left the journeys declared by nobody. Hosts adopt
|
|
9
|
+
* them the way the README describes — implement the port, add two globs — which
|
|
10
|
+
* works and is invisible to `assemble()`: a host that never adopts them looks
|
|
11
|
+
* exactly like a host that did, and a scenario added in a later release reaches
|
|
12
|
+
* a consumer only if someone thinks to look.
|
|
13
|
+
*
|
|
14
|
+
* That is precisely the failure the `e2e` capability exists to convert into a
|
|
15
|
+
* refusal. The contract's own note on `world` records both silent modes, and
|
|
16
|
+
* both have happened in this estate: a blank `featuresRoot` compiles every
|
|
17
|
+
* spec under `node_modules`, where the runner's `testIgnore` skips them and the
|
|
18
|
+
* suite passes GREEN with zero tests; and a shipped world nobody adopts is a
|
|
19
|
+
* few hundred lines of journeys re-derived by hand in the host, undiscovered —
|
|
20
|
+
* the documented fate of `defineAuthWorld` on its first host adoption.
|
|
21
|
+
*
|
|
22
|
+
* Declaring makes a host BIND the world (with the `featuresRoot` its compiled
|
|
23
|
+
* specs land under) or decline it in writing. Either way the wiring report
|
|
24
|
+
* answers "does this host run the payment journeys?", which is a question
|
|
25
|
+
* nothing could answer before.
|
|
26
|
+
*
|
|
27
|
+
* ## Two manifests, matching the two OPT-IN worlds
|
|
28
|
+
*
|
|
29
|
+
* The checkout journeys and the PLATFORM-OPERATIONS journeys are a separate
|
|
30
|
+
* port and a separate glob triple on purpose — `platform-world.ts` records
|
|
31
|
+
* that folding them into `PaymentsWorld` would have broken every
|
|
32
|
+
* checkout-only consumer. Two manifests keep that split expressible: a host
|
|
33
|
+
* running checkout journeys and not platform ones binds the first and declines
|
|
34
|
+
* the second, in writing, rather than silently getting neither.
|
|
35
|
+
*
|
|
36
|
+
* ## Untyped pure data, like its sibling
|
|
37
|
+
*
|
|
38
|
+
* `payments/no-host-imports` forbids a `@12-apps/wiring` import anywhere in
|
|
39
|
+
* this package tree, type-only included — the payments packages must vendor
|
|
40
|
+
* into a repo that has no wiring contract at all. The producer assertions run
|
|
41
|
+
* along the dependency edge that DOES exist, in the wiring suite's
|
|
42
|
+
* `payments-manifest.test.ts`, exactly as payments-backend's do.
|
|
43
|
+
*
|
|
44
|
+
* There is no `observability` here and none is owed: the capability is
|
|
45
|
+
* mandatory only for manifests with a RUNTIME half, and journeys ship no
|
|
46
|
+
* running code into a host — they are compiled and executed by the host's own
|
|
47
|
+
* Playwright.
|
|
48
|
+
*/
|
|
49
|
+
/** The buyer's checkout journeys. */
|
|
50
|
+
export declare const paymentsE2eManifest: {
|
|
51
|
+
readonly name: "@12-apps/payments-e2e";
|
|
52
|
+
readonly contract: 1;
|
|
53
|
+
readonly e2e: {
|
|
54
|
+
readonly entry: "@12-apps/payments-e2e";
|
|
55
|
+
readonly world: {
|
|
56
|
+
readonly factory: "definePaymentsWorld";
|
|
57
|
+
};
|
|
58
|
+
};
|
|
59
|
+
};
|
|
60
|
+
/** The platform-operations journeys: the Connect consult and the homologação. */
|
|
61
|
+
export declare const paymentsPlatformE2eManifest: {
|
|
62
|
+
readonly name: "@12-apps/payments-platform-e2e";
|
|
63
|
+
readonly contract: 1;
|
|
64
|
+
readonly e2e: {
|
|
65
|
+
readonly entry: "@12-apps/payments-e2e";
|
|
66
|
+
readonly world: {
|
|
67
|
+
readonly factory: "definePaymentsPlatformWorld";
|
|
68
|
+
};
|
|
69
|
+
};
|
|
70
|
+
};
|
|
71
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/manifest/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+CG;AAEH,qCAAqC;AACrC,eAAO,MAAM,mBAAmB;;;;;;;;;CAOtB,CAAC;AAEX,iFAAiF;AACjF,eAAO,MAAM,2BAA2B;;;;;;;;;CAO9B,CAAC"}
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `@12-apps/payments-e2e/manifest` — the SHARED wiring manifest.
|
|
3
|
+
*
|
|
4
|
+
* ## Why this package has one at all
|
|
5
|
+
*
|
|
6
|
+
* `@12-apps/payments-backend`'s manifest narrows `e2e` away, correctly: the
|
|
7
|
+
* journeys ship HERE, and a manifest must not declare an entry another package
|
|
8
|
+
* exports. But the narrowing left the journeys declared by nobody. Hosts adopt
|
|
9
|
+
* them the way the README describes — implement the port, add two globs — which
|
|
10
|
+
* works and is invisible to `assemble()`: a host that never adopts them looks
|
|
11
|
+
* exactly like a host that did, and a scenario added in a later release reaches
|
|
12
|
+
* a consumer only if someone thinks to look.
|
|
13
|
+
*
|
|
14
|
+
* That is precisely the failure the `e2e` capability exists to convert into a
|
|
15
|
+
* refusal. The contract's own note on `world` records both silent modes, and
|
|
16
|
+
* both have happened in this estate: a blank `featuresRoot` compiles every
|
|
17
|
+
* spec under `node_modules`, where the runner's `testIgnore` skips them and the
|
|
18
|
+
* suite passes GREEN with zero tests; and a shipped world nobody adopts is a
|
|
19
|
+
* few hundred lines of journeys re-derived by hand in the host, undiscovered —
|
|
20
|
+
* the documented fate of `defineAuthWorld` on its first host adoption.
|
|
21
|
+
*
|
|
22
|
+
* Declaring makes a host BIND the world (with the `featuresRoot` its compiled
|
|
23
|
+
* specs land under) or decline it in writing. Either way the wiring report
|
|
24
|
+
* answers "does this host run the payment journeys?", which is a question
|
|
25
|
+
* nothing could answer before.
|
|
26
|
+
*
|
|
27
|
+
* ## Two manifests, matching the two OPT-IN worlds
|
|
28
|
+
*
|
|
29
|
+
* The checkout journeys and the PLATFORM-OPERATIONS journeys are a separate
|
|
30
|
+
* port and a separate glob triple on purpose — `platform-world.ts` records
|
|
31
|
+
* that folding them into `PaymentsWorld` would have broken every
|
|
32
|
+
* checkout-only consumer. Two manifests keep that split expressible: a host
|
|
33
|
+
* running checkout journeys and not platform ones binds the first and declines
|
|
34
|
+
* the second, in writing, rather than silently getting neither.
|
|
35
|
+
*
|
|
36
|
+
* ## Untyped pure data, like its sibling
|
|
37
|
+
*
|
|
38
|
+
* `payments/no-host-imports` forbids a `@12-apps/wiring` import anywhere in
|
|
39
|
+
* this package tree, type-only included — the payments packages must vendor
|
|
40
|
+
* into a repo that has no wiring contract at all. The producer assertions run
|
|
41
|
+
* along the dependency edge that DOES exist, in the wiring suite's
|
|
42
|
+
* `payments-manifest.test.ts`, exactly as payments-backend's do.
|
|
43
|
+
*
|
|
44
|
+
* There is no `observability` here and none is owed: the capability is
|
|
45
|
+
* mandatory only for manifests with a RUNTIME half, and journeys ship no
|
|
46
|
+
* running code into a host — they are compiled and executed by the host's own
|
|
47
|
+
* Playwright.
|
|
48
|
+
*/
|
|
49
|
+
/** The buyer's checkout journeys. */
|
|
50
|
+
export const paymentsE2eManifest = {
|
|
51
|
+
name: '@12-apps/payments-e2e',
|
|
52
|
+
contract: 1,
|
|
53
|
+
e2e: {
|
|
54
|
+
entry: '@12-apps/payments-e2e',
|
|
55
|
+
world: { factory: 'definePaymentsWorld' },
|
|
56
|
+
},
|
|
57
|
+
};
|
|
58
|
+
/** The platform-operations journeys: the Connect consult and the homologação. */
|
|
59
|
+
export const paymentsPlatformE2eManifest = {
|
|
60
|
+
name: '@12-apps/payments-platform-e2e',
|
|
61
|
+
contract: 1,
|
|
62
|
+
e2e: {
|
|
63
|
+
entry: '@12-apps/payments-e2e',
|
|
64
|
+
world: { factory: 'definePaymentsPlatformWorld' },
|
|
65
|
+
},
|
|
66
|
+
};
|
|
67
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/manifest/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+CG;AAEH,qCAAqC;AACrC,MAAM,CAAC,MAAM,mBAAmB,GAAG;IACjC,IAAI,EAAE,uBAAuB;IAC7B,QAAQ,EAAE,CAAC;IACX,GAAG,EAAE;QACH,KAAK,EAAE,uBAAuB;QAC9B,KAAK,EAAE,EAAE,OAAO,EAAE,qBAAqB,EAAE;KAC1C;CACO,CAAC;AAEX,iFAAiF;AACjF,MAAM,CAAC,MAAM,2BAA2B,GAAG;IACzC,IAAI,EAAE,gCAAgC;IACtC,QAAQ,EAAE,CAAC;IACX,GAAG,EAAE;QACH,KAAK,EAAE,uBAAuB;QAC9B,KAAK,EAAE,EAAE,OAAO,EAAE,6BAA6B,EAAE;KAClD;CACO,CAAC"}
|
|
@@ -74,4 +74,31 @@ Then('o aviso de autorização expirada some', async ({ page }) => {
|
|
|
74
74
|
await expect(page.getByText('A autorização expirou ou foi revogada.')).toBeHidden();
|
|
75
75
|
await expect(page.getByTestId('payments-expiry-warning')).toBeHidden();
|
|
76
76
|
});
|
|
77
|
+
/**
|
|
78
|
+
* THE CONTRAST, and the reason it is a scenario rather than an assumption.
|
|
79
|
+
*
|
|
80
|
+
* Every warning on this screen is conditional, so a panel that rendered the
|
|
81
|
+
* reconnect banner unconditionally would satisfy all three scenarios above —
|
|
82
|
+
* they only ever look at a store whose grant is already dead. This is the one
|
|
83
|
+
* that fails if the condition is dropped.
|
|
84
|
+
*
|
|
85
|
+
* It reuses the `activation` surface rather than asking hosts for a fourth
|
|
86
|
+
* case: that store's provider is connected in stub mode and simply never
|
|
87
|
+
* charged, which is a healthy grant by every measure this feature cares about.
|
|
88
|
+
*/
|
|
89
|
+
Given('a loja tem uma conexão saudável com o provedor', async ({ page }) => {
|
|
90
|
+
await paymentsWorld().open(page, 'activation');
|
|
91
|
+
});
|
|
92
|
+
When('o lojista abre a tela dessa conexão', async ({ page }) => {
|
|
93
|
+
// The activation surface lands the owner on the provider's own panel, so
|
|
94
|
+
// there is nothing to click — what this step asserts is that we are on it.
|
|
95
|
+
await expect(page.getByTestId('payments-enabled-toggle')).toBeVisible();
|
|
96
|
+
});
|
|
97
|
+
Then('não há aviso de autorização expirada', async ({ page }) => {
|
|
98
|
+
await expect(page.getByText('A autorização expirou ou foi revogada.')).toBeHidden();
|
|
99
|
+
await expect(page.getByTestId('payments-expiry-warning')).toBeHidden();
|
|
100
|
+
});
|
|
101
|
+
Then('não há nada para reconectar', async ({ page }) => {
|
|
102
|
+
await expect(page.getByRole('button', { name: 'Reconectar' })).toBeHidden();
|
|
103
|
+
});
|
|
77
104
|
//# sourceMappingURL=reconexao.steps.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"reconexao.steps.js","sourceRoot":"","sources":["../../src/steps/reconexao.steps.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"reconexao.steps.js","sourceRoot":"","sources":["../../src/steps/reconexao.steps.ts"],"names":[],"mappings":"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"}
|
|
@@ -34,3 +34,12 @@ Feature: A autorização que morreu, e a loja que volta a vender
|
|
|
34
34
|
Then a conexão volta a estar verificada
|
|
35
35
|
And a loja volta para a rotação sem ninguém ter mexido no botão
|
|
36
36
|
And o aviso de autorização expirada some
|
|
37
|
+
|
|
38
|
+
# O contraste, e não é cerimônia: todo aviso desta tela é condicional, então
|
|
39
|
+
# uma tela que avisasse sempre passaria nos três cenários acima. Este é o
|
|
40
|
+
# único que falha se o aviso deixar de ser condicional.
|
|
41
|
+
Scenario: Uma conexão saudável não avisa nada
|
|
42
|
+
Given a loja tem uma conexão saudável com o provedor
|
|
43
|
+
When o lojista abre a tela dessa conexão
|
|
44
|
+
Then não há aviso de autorização expirada
|
|
45
|
+
And não há nada para reconectar
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@12-apps/payments-e2e",
|
|
3
|
-
"version": "2.
|
|
3
|
+
"version": "2.5.0",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"description": "The payments buyer journeys, as Gherkin a host runs against its own app",
|
|
6
6
|
"repository": {
|
|
@@ -19,6 +19,10 @@
|
|
|
19
19
|
"types": "./dist/index.d.ts",
|
|
20
20
|
"default": "./dist/index.js"
|
|
21
21
|
},
|
|
22
|
+
"./manifest": {
|
|
23
|
+
"types": "./dist/manifest/index.d.ts",
|
|
24
|
+
"default": "./dist/manifest/index.js"
|
|
25
|
+
},
|
|
22
26
|
"./package.json": "./package.json"
|
|
23
27
|
},
|
|
24
28
|
"scripts": {
|