@hed-hog/core 0.0.394 → 0.0.396
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/integration-profile/testers/payment.testers.d.ts.map +1 -1
- package/dist/integration-profile/testers/payment.testers.js +6 -1
- package/dist/integration-profile/testers/payment.testers.js.map +1 -1
- package/hedhog/data/route.yaml +0 -37
- package/package.json +7 -7
- package/src/integration-profile/testers/payment.testers.ts +6 -1
- package/src/integration-profile/testers/remaining.testers.spec.ts +45 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"payment.testers.d.ts","sourceRoot":"","sources":["../../../src/integration-profile/testers/payment.testers.ts"],"names":[],"mappings":"AASA,OAAO,EAAE,iBAAiB,EAAE,MAAM,4BAA4B,CAAC;
|
|
1
|
+
{"version":3,"file":"payment.testers.d.ts","sourceRoot":"","sources":["../../../src/integration-profile/testers/payment.testers.ts"],"names":[],"mappings":"AASA,OAAO,EAAE,iBAAiB,EAAE,MAAM,4BAA4B,CAAC;AAgL/D,eAAO,MAAM,eAAe,EAAE,iBAAiB,EAI9C,CAAC"}
|
|
@@ -149,7 +149,12 @@ const googlePlayTester = {
|
|
|
149
149
|
return (0, http_probe_1.fail)((0, http_probe_1.describeHttpError)(token, 'Google rejected the service account.'));
|
|
150
150
|
}
|
|
151
151
|
const packageName = (0, http_probe_1.str)(config, 'package_name');
|
|
152
|
-
|
|
152
|
+
// Sonda o catálogo de assinaturas, não `inappproducts`: o endpoint antigo responde
|
|
153
|
+
// 403 "Please migrate to the new publishing API." para quem já usa o modelo novo de
|
|
154
|
+
// assinaturas, e o 403 abaixo viraria "sem acesso ao app" — falso negativo eterno,
|
|
155
|
+
// que ainda por cima esconderia uma falta de permissão de verdade. É também a API
|
|
156
|
+
// que o gateway consome depois, então o teste passa a medir o que importa.
|
|
157
|
+
const app = await (0, http_probe_1.probeJson)(`https://androidpublisher.googleapis.com/androidpublisher/v3/applications/${encodeURIComponent(packageName)}/subscriptions?pageSize=1`, { headers: { Authorization: `Bearer ${token.body.access_token}` } }, ctx.signal);
|
|
153
158
|
// Credencial válida; o vínculo com o app no Play Console é outra configuração,
|
|
154
159
|
// feita no console e não aqui.
|
|
155
160
|
if (app.status === 401 || app.status === 403) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"payment.testers.js","sourceRoot":"","sources":["../../../src/integration-profile/testers/payment.testers.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"payment.testers.js","sourceRoot":"","sources":["../../../src/integration-profile/testers/payment.testers.ts"],"names":[],"mappings":"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"}
|
package/hedhog/data/route.yaml
CHANGED
|
@@ -741,11 +741,6 @@
|
|
|
741
741
|
slug: admin
|
|
742
742
|
- where:
|
|
743
743
|
slug: admin-access
|
|
744
|
-
# O editor do CMS sobe capa de post e imagem de Open Graph por aqui.
|
|
745
|
-
- where:
|
|
746
|
-
slug: admin-cms
|
|
747
|
-
- where:
|
|
748
|
-
slug: cms-editor
|
|
749
744
|
- url: /file
|
|
750
745
|
method: DELETE
|
|
751
746
|
type: HTTP
|
|
@@ -1625,38 +1620,6 @@
|
|
|
1625
1620
|
slug: admin
|
|
1626
1621
|
- where:
|
|
1627
1622
|
slug: admin-access
|
|
1628
|
-
- where:
|
|
1629
|
-
slug: admin-campaign
|
|
1630
|
-
- where:
|
|
1631
|
-
slug: admin-cms
|
|
1632
|
-
- where:
|
|
1633
|
-
slug: cms-editor
|
|
1634
|
-
- where:
|
|
1635
|
-
slug: cms-publisher
|
|
1636
|
-
- where:
|
|
1637
|
-
slug: admin-finance
|
|
1638
|
-
- where:
|
|
1639
|
-
slug: admin-finance-operator
|
|
1640
|
-
- where:
|
|
1641
|
-
slug: finance-statements-editor
|
|
1642
|
-
- where:
|
|
1643
|
-
slug: admin-inbox
|
|
1644
|
-
- where:
|
|
1645
|
-
slug: inbox-owner
|
|
1646
|
-
- where:
|
|
1647
|
-
slug: admin-lms
|
|
1648
|
-
- where:
|
|
1649
|
-
slug: lms-instructor
|
|
1650
|
-
- where:
|
|
1651
|
-
slug: admin-operations-director
|
|
1652
|
-
- where:
|
|
1653
|
-
slug: admin-operations-project-manager
|
|
1654
|
-
- where:
|
|
1655
|
-
slug: operations-collaborator
|
|
1656
|
-
- where:
|
|
1657
|
-
slug: admin-sac
|
|
1658
|
-
- where:
|
|
1659
|
-
slug: sac-agent
|
|
1660
1623
|
- url: /integration-event-catalog
|
|
1661
1624
|
method: GET
|
|
1662
1625
|
type: HTTP
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@hed-hog/core",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.396",
|
|
4
4
|
"license": "MIT",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"types": "dist/index.d.ts",
|
|
@@ -45,13 +45,13 @@
|
|
|
45
45
|
"speakeasy": "^2.0.0",
|
|
46
46
|
"ua-parser-js": "^2.0.10",
|
|
47
47
|
"uuid": "^11.1.0",
|
|
48
|
-
"@hed-hog/api-prisma": "0.0.6",
|
|
49
|
-
"@hed-hog/api": "0.0.8",
|
|
50
|
-
"@hed-hog/api-mail": "0.0.10",
|
|
51
|
-
"@hed-hog/api-pagination": "0.0.7",
|
|
52
|
-
"@hed-hog/api-types": "0.0.1",
|
|
53
48
|
"@hed-hog/vault-crypto": "0.0.1",
|
|
54
|
-
"@hed-hog/api-
|
|
49
|
+
"@hed-hog/api-prisma": "0.0.7",
|
|
50
|
+
"@hed-hog/api-locale": "0.0.15",
|
|
51
|
+
"@hed-hog/api-mail": "0.0.11",
|
|
52
|
+
"@hed-hog/api-types": "0.0.2",
|
|
53
|
+
"@hed-hog/api": "0.0.9",
|
|
54
|
+
"@hed-hog/api-pagination": "0.0.8"
|
|
55
55
|
},
|
|
56
56
|
"exports": {
|
|
57
57
|
".": {
|
|
@@ -152,10 +152,15 @@ const googlePlayTester: IntegrationTester = {
|
|
|
152
152
|
}
|
|
153
153
|
|
|
154
154
|
const packageName = str(config, 'package_name');
|
|
155
|
+
// Sonda o catálogo de assinaturas, não `inappproducts`: o endpoint antigo responde
|
|
156
|
+
// 403 "Please migrate to the new publishing API." para quem já usa o modelo novo de
|
|
157
|
+
// assinaturas, e o 403 abaixo viraria "sem acesso ao app" — falso negativo eterno,
|
|
158
|
+
// que ainda por cima esconderia uma falta de permissão de verdade. É também a API
|
|
159
|
+
// que o gateway consome depois, então o teste passa a medir o que importa.
|
|
155
160
|
const app = await probeJson(
|
|
156
161
|
`https://androidpublisher.googleapis.com/androidpublisher/v3/applications/${encodeURIComponent(
|
|
157
162
|
packageName,
|
|
158
|
-
)}/
|
|
163
|
+
)}/subscriptions?pageSize=1`,
|
|
159
164
|
{ headers: { Authorization: `Bearer ${token.body.access_token}` } },
|
|
160
165
|
ctx.signal,
|
|
161
166
|
);
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { afterEach, beforeEach, describe, expect, it, jest } from '@jest/globals';
|
|
2
|
+
import { generateKeyPairSync } from 'node:crypto';
|
|
2
3
|
import { AI_TESTERS } from './ai.testers';
|
|
3
4
|
import { EMAIL_TESTERS } from './email.testers';
|
|
4
5
|
import { INFRASTRUCTURE_TESTERS } from './infrastructure.testers';
|
|
@@ -328,6 +329,19 @@ describe('mercado_pago tester', () => {
|
|
|
328
329
|
describe('google_play tester', () => {
|
|
329
330
|
const tester = bySlug('google_play');
|
|
330
331
|
|
|
332
|
+
// O tester assina um JWT antes de tocar na rede, então os casos que chegam à API
|
|
333
|
+
// precisam de uma chave RSA de verdade — texto qualquer reprovaria na assinatura.
|
|
334
|
+
const { privateKey } = generateKeyPairSync('rsa', {
|
|
335
|
+
modulusLength: 2048,
|
|
336
|
+
publicKeyEncoding: { type: 'spki', format: 'pem' },
|
|
337
|
+
privateKeyEncoding: { type: 'pkcs8', format: 'pem' },
|
|
338
|
+
});
|
|
339
|
+
const config = {
|
|
340
|
+
package_name: 'com.acme.app',
|
|
341
|
+
client_email: 'sa@acme.iam.gserviceaccount.com',
|
|
342
|
+
private_key: privateKey,
|
|
343
|
+
};
|
|
344
|
+
|
|
331
345
|
it('reprova um service account JSON malformado, sem ir à rede', async () => {
|
|
332
346
|
const outcome = await tester.test(
|
|
333
347
|
{ package_name: 'com.acme.app', service_account_json: '{ quebrado' },
|
|
@@ -347,6 +361,37 @@ describe('google_play tester', () => {
|
|
|
347
361
|
expect(outcome.ok).toBe(false);
|
|
348
362
|
expect(outcome.error).toContain('client email and private key');
|
|
349
363
|
});
|
|
364
|
+
|
|
365
|
+
// `inappproducts` responde 403 "Please migrate to the new publishing API." para quem
|
|
366
|
+
// usa o modelo novo de assinaturas, e o tester lia esse 403 como falta de acesso ao
|
|
367
|
+
// app — aprovava com ressalva mesmo estando tudo certo.
|
|
368
|
+
it('sonda o catálogo de assinaturas, não o inappproducts legado', async () => {
|
|
369
|
+
fetchMock
|
|
370
|
+
.mockResolvedValueOnce(jsonResponse({ access_token: 'tok' }))
|
|
371
|
+
.mockResolvedValueOnce(jsonResponse({ subscriptions: [] }));
|
|
372
|
+
|
|
373
|
+
const outcome = await tester.test(config, ctx());
|
|
374
|
+
|
|
375
|
+
expect(outcome).toEqual({
|
|
376
|
+
ok: true,
|
|
377
|
+
info: 'com.acme.app — sa@acme.iam.gserviceaccount.com',
|
|
378
|
+
});
|
|
379
|
+
|
|
380
|
+
const [url] = fetchMock.mock.calls[1] as [string];
|
|
381
|
+
expect(url).toContain('/applications/com.acme.app/subscriptions');
|
|
382
|
+
expect(url).not.toContain('inappproducts');
|
|
383
|
+
});
|
|
384
|
+
|
|
385
|
+
it('mantém a ressalva quando a service account não enxerga o app', async () => {
|
|
386
|
+
fetchMock
|
|
387
|
+
.mockResolvedValueOnce(jsonResponse({ access_token: 'tok' }))
|
|
388
|
+
.mockResolvedValueOnce(jsonResponse({ error: { message: 'forbidden' } }, 403));
|
|
389
|
+
|
|
390
|
+
const outcome = await tester.test(config, ctx());
|
|
391
|
+
|
|
392
|
+
expect(outcome.ok).toBe(true);
|
|
393
|
+
expect(outcome.warning).toContain('no access to "com.acme.app"');
|
|
394
|
+
});
|
|
350
395
|
});
|
|
351
396
|
|
|
352
397
|
describe('digitalocean tester', () => {
|