apify-test-tools 0.9.1-beta.10 → 0.9.1-beta.11

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 (34) hide show
  1. package/CHANGELOG.md +1 -0
  2. package/README.md +78 -27
  3. package/bin/utils/config/parser.ts +6 -5
  4. package/bin/utils/config/structures/base.ts +5 -1
  5. package/bin/utils/config/structures/grouped.ts +40 -0
  6. package/bin/utils/config/structures/legacy.ts +3 -1
  7. package/dist/bin/utils/config/parser.d.ts.map +1 -1
  8. package/dist/bin/utils/config/parser.js +6 -5
  9. package/dist/bin/utils/config/parser.js.map +1 -1
  10. package/dist/bin/utils/config/structures/base.d.ts +3 -2
  11. package/dist/bin/utils/config/structures/base.d.ts.map +1 -1
  12. package/dist/bin/utils/config/structures/base.js +1 -0
  13. package/dist/bin/utils/config/structures/base.js.map +1 -1
  14. package/dist/bin/utils/config/structures/grouped.d.ts +6 -0
  15. package/dist/bin/utils/config/structures/grouped.d.ts.map +1 -0
  16. package/dist/bin/utils/config/structures/grouped.js +29 -0
  17. package/dist/bin/utils/config/structures/grouped.js.map +1 -0
  18. package/dist/bin/utils/config/structures/legacy.d.ts +1 -1
  19. package/dist/bin/utils/config/structures/legacy.d.ts.map +1 -1
  20. package/dist/bin/utils/config/structures/legacy.js +1 -1
  21. package/dist/bin/utils/config/structures/legacy.js.map +1 -1
  22. package/dist/test/unit/bin/utils/config/load-config.test.js +1 -0
  23. package/dist/test/unit/bin/utils/config/load-config.test.js.map +1 -1
  24. package/dist/test/unit/bin/utils/config/parser.test.js +23 -5
  25. package/dist/test/unit/bin/utils/config/parser.test.js.map +1 -1
  26. package/dist/test/unit/bin/utils/config/structures/grouped.test.d.ts +2 -0
  27. package/dist/test/unit/bin/utils/config/structures/grouped.test.d.ts.map +1 -0
  28. package/dist/test/unit/bin/utils/config/structures/grouped.test.js +75 -0
  29. package/dist/test/unit/bin/utils/config/structures/grouped.test.js.map +1 -0
  30. package/dist/tsconfig.tsbuildinfo +1 -1
  31. package/package.json +1 -1
  32. package/test/unit/bin/utils/config/load-config.test.ts +1 -0
  33. package/test/unit/bin/utils/config/parser.test.ts +26 -5
  34. package/test/unit/bin/utils/config/structures/grouped.test.ts +90 -0
@@ -0,0 +1,75 @@
1
+ import { describe, expect, it } from 'vitest';
2
+ import { GROUPED_PARSER } from '../../../../../../bin/utils/config/structures/grouped.js';
3
+ const actor = (fields = {}) => ({
4
+ folder: 'actors/shopify',
5
+ actorFullName: 'myteam/shopify',
6
+ ...fields,
7
+ });
8
+ const group = (fields = {}) => ({
9
+ actors: [actor()],
10
+ tokenEnvVar: 'APIFY_TOKEN',
11
+ ...fields,
12
+ });
13
+ describe('GROUPED_PARSER', () => {
14
+ it('flattens every group into one list, handing each actor its group’s settings', () => {
15
+ expect(GROUPED_PARSER.parse({
16
+ groups: {
17
+ myteam: {
18
+ actors: [actor(), actor({ folder: 'actors/email', actorFullName: 'myteam/email' })],
19
+ tokenEnvVar: 'APIFY_TOKEN_MYTEAM',
20
+ overrideActorContext: ['packages'],
21
+ },
22
+ other: { actors: [actor({ folder: 'actors/x', actorFullName: 'other/x' })], tokenEnvVar: 'TOKEN' },
23
+ },
24
+ })).toEqual([
25
+ {
26
+ folder: 'actors/shopify',
27
+ actorFullName: 'myteam/shopify',
28
+ tokenEnvVar: 'APIFY_TOKEN_MYTEAM',
29
+ overrideActorContext: ['packages'],
30
+ },
31
+ {
32
+ folder: 'actors/email',
33
+ actorFullName: 'myteam/email',
34
+ tokenEnvVar: 'APIFY_TOKEN_MYTEAM',
35
+ overrideActorContext: ['packages'],
36
+ },
37
+ { folder: 'actors/x', actorFullName: 'other/x', tokenEnvVar: 'TOKEN', overrideActorContext: undefined },
38
+ ]);
39
+ });
40
+ it('ignores the group key entirely', () => {
41
+ expect(GROUPED_PARSER.parse({ groups: { 'not-a-folder-at-all': group() } })).toEqual([
42
+ { folder: 'actors/shopify', actorFullName: 'myteam/shopify', tokenEnvVar: 'APIFY_TOKEN' },
43
+ ]);
44
+ });
45
+ it('allows actors to override some fields', () => {
46
+ expect(GROUPED_PARSER.parse({ groups: { myteam: group({ actors: [actor({ tokenEnvVar: 'FROM_ACTOR' })] }) } })).toEqual([{ folder: 'actors/shopify', actorFullName: 'myteam/shopify', tokenEnvVar: 'FROM_ACTOR' }]);
47
+ });
48
+ it("returns the entries as written — normalizing is not this layer's job", () => {
49
+ const raw = actor({ folder: 'actors/shopify/' });
50
+ expect(GROUPED_PARSER.parse({ groups: { myteam: group({ actors: [raw], overrideActorContext: ['packages/'] }) } })).toEqual([{ ...raw, tokenEnvVar: 'APIFY_TOKEN', overrideActorContext: ['packages/'] }]);
51
+ });
52
+ it('rejects a config with no groups (and thus no actors)', () => {
53
+ expect(() => GROUPED_PARSER.parse({})).toThrow();
54
+ });
55
+ it('reports problems from every group at once instead of only the first', () => {
56
+ const message = (() => {
57
+ try {
58
+ GROUPED_PARSER.parse({
59
+ groups: {
60
+ myteam: { actors: [actor({ folder: 123 })], tokenEnvVar: 'APIFY_TOKEN' },
61
+ other: { actors: [actor({ actorFullName: 'nope' })] },
62
+ },
63
+ });
64
+ throw new Error('Function should have thrown');
65
+ }
66
+ catch (err) {
67
+ return err.message;
68
+ }
69
+ })();
70
+ expect(message).toContain('myteam.actors[0].folder');
71
+ expect(message).toContain('other.actors[0].actorFullName');
72
+ expect(message).toContain('other.tokenEnvVar');
73
+ });
74
+ });
75
+ //# sourceMappingURL=grouped.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"grouped.test.js","sourceRoot":"","sources":["../../../../../../../test/unit/bin/utils/config/structures/grouped.test.ts"],"names":[],"mappings":"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"}