Skip to content

Commit aa41151

Browse files
adrians5jclaude
andauthored
refactor(background-tasks): remove ContextPlugin from tests (#5415)
Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
1 parent 44df61b commit aa41151

7 files changed

Lines changed: 67 additions & 37 deletions

File tree

packages/background-tasks/__tests__/helpers/createTaskDefinition.ts

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
import { TaskDefinition } from "@webiny/api-core/features/task/TaskDefinition/index.js";
2-
import { createContextPlugin } from "@webiny/api";
2+
import type { Container } from "@webiny/di";
33
import type { ISelfCleanup } from "@webiny/api-core/features/task/TaskDefinition/index.js";
44

55
interface TaskParams<T> {
@@ -44,7 +44,7 @@ export function createTaskDefinition<T extends TaskDefinition.Result>(params: Ta
4444
dependencies: []
4545
});
4646

47-
return createContextPlugin(context => {
48-
context.container.register(TestTaskDefinition);
49-
});
47+
return (container: Container) => {
48+
container.register(TestTaskDefinition);
49+
};
5050
}

packages/background-tasks/__tests__/helpers/useGraphQLHandler.ts

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -112,7 +112,17 @@ export const useGraphQLHandler = (params?: UseHandlerParams) => {
112112
}));
113113

114114
container.registerInstance(TaskService, createMockTaskService());
115-
registerLegacyPluginsViaGqlContextualSchema(container, [...(params?.plugins || [])]);
115+
const flat = [...(params?.plugins || [])].flat(Infinity as 1).filter(Boolean);
116+
// DI-native plugins are plain `container => {}` functions; call them directly. Any
117+
// remaining legacy plugins still go through the bridge until #39 removes it.
118+
const isFn = (p: any) => typeof p === "function" && !p.prototype;
119+
for (const plugin of flat.filter(isFn)) {
120+
(plugin as (container: any) => void)(container);
121+
}
122+
registerLegacyPluginsViaGqlContextualSchema(
123+
container,
124+
flat.filter(p => !isFn(p))
125+
);
116126

117127
GraphQLEngineFeature.register(container);
118128
}

packages/background-tasks/__tests__/helpers/useRawHandler.ts

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -64,7 +64,17 @@ export const useRawHandler = <C = any>(params?: UseRawHandlerParams) => {
6464
BackgroundTasksFeature.register(container);
6565

6666
container.registerInstance(TaskService, createMockTaskService());
67-
registerLegacyPluginsViaGqlContextualSchema(container, [...(params?.plugins || [])]);
67+
const flat = [...(params?.plugins || [])].flat(Infinity as 1).filter(Boolean);
68+
// DI-native plugins are plain `container => {}` functions; call them directly. Any
69+
// remaining legacy plugins still go through the bridge until #39 removes it.
70+
const isFn = (p: any) => typeof p === "function" && !p.prototype;
71+
for (const plugin of flat.filter(isFn)) {
72+
(plugin as (container: any) => void)(container);
73+
}
74+
registerLegacyPluginsViaGqlContextualSchema(
75+
container,
76+
flat.filter(p => !isFn(p))
77+
);
6878
const STUB_SCHEMA = buildSchema("type Query { _empty: String }");
6979
container.registerInstance(GraphQLContextualSchema, {
7080
async build(ctx: Record<string, any>) {

packages/background-tasks/__tests__/helpers/useTaskHandler.ts

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -73,7 +73,17 @@ export const useTaskHandler = (params?: UseTaskHandlerParams) => {
7373
BackgroundTasksFeature.register(container);
7474

7575
container.registerInstance(TaskService, createMockTaskService());
76-
registerLegacyPluginsViaGqlContextualSchema(container, [...(params?.plugins || [])]);
76+
const flat = [...(params?.plugins || [])].flat(Infinity as 1).filter(Boolean);
77+
// DI-native plugins are plain `container => {}` functions; call them directly. Any
78+
// remaining legacy plugins still go through the bridge until #39 removes it.
79+
const isFn = (p: any) => typeof p === "function" && !p.prototype;
80+
for (const plugin of flat.filter(isFn)) {
81+
(plugin as (container: any) => void)(container);
82+
}
83+
registerLegacyPluginsViaGqlContextualSchema(
84+
container,
85+
flat.filter(p => !isFn(p))
86+
);
7787
const STUB_SCHEMA = buildSchema("type Query { _empty: String }");
7888
container.registerInstance(GraphQLContextualSchema, {
7989
async build(ctx: Record<string, any>) {

packages/background-tasks/__tests__/runner/taskDefinition.ts

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
import { TaskDefinition } from "@webiny/api-core/features/task/TaskDefinition/index.js";
22
import { TaskController } from "@webiny/api-core/features/task/TaskController/index.js";
3-
import { createContextPlugin } from "@webiny/api";
3+
import type { Container } from "@webiny/di";
44

55
export const TASK_ID = "taskRunnerTask";
66

@@ -31,6 +31,6 @@ export const TestTaskDefinition = TaskDefinition.createImplementation({
3131
dependencies: [TaskController]
3232
});
3333

34-
export const testDefinitionPlugin = createContextPlugin(context => {
35-
context.container.register(TestTaskDefinition);
36-
});
34+
export const testDefinitionPlugin = (container: Container) => {
35+
container.register(TestTaskDefinition);
36+
};

packages/background-tasks/__tests__/runner/taskLifecycleHooks.test.ts

Lines changed: 19 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ import { createLiveContextFactory } from "~tests/live";
55
import { timerFactory } from "@webiny/handler-aws/utils";
66
import { TaskEventValidation } from "~/api/runner/TaskEventValidation";
77
import { TaskDefinition } from "@webiny/api-core/features/task/TaskDefinition/index.js";
8-
import { createContextPlugin } from "@webiny/api";
8+
import type { Container } from "@webiny/di";
99
import { TaskDataStatus } from "~/api/types.js";
1010

1111
describe("task lifecycle hooks", () => {
@@ -31,9 +31,9 @@ describe("task lifecycle hooks", () => {
3131

3232
const contextFactory = createLiveContextFactory({
3333
plugins: [
34-
createContextPlugin(context => {
35-
context.container.register(TestTaskDefinition);
36-
})
34+
(container: Container) => {
35+
container.register(TestTaskDefinition);
36+
}
3737
]
3838
});
3939

@@ -82,9 +82,9 @@ describe("task lifecycle hooks", () => {
8282

8383
const contextFactory = createLiveContextFactory({
8484
plugins: [
85-
createContextPlugin(context => {
86-
context.container.register(TestTaskDefinition);
87-
})
85+
(container: Container) => {
86+
container.register(TestTaskDefinition);
87+
}
8888
]
8989
});
9090

@@ -144,9 +144,9 @@ describe("task lifecycle hooks", () => {
144144

145145
const contextFactory = createLiveContextFactory({
146146
plugins: [
147-
createContextPlugin(context => {
148-
context.container.register(TestTaskDefinition);
149-
})
147+
(container: Container) => {
148+
container.register(TestTaskDefinition);
149+
}
150150
]
151151
});
152152

@@ -200,9 +200,9 @@ describe("task lifecycle hooks", () => {
200200

201201
const contextFactory = createLiveContextFactory({
202202
plugins: [
203-
createContextPlugin(context => {
204-
context.container.register(TestTaskDefinition);
205-
})
203+
(container: Container) => {
204+
container.register(TestTaskDefinition);
205+
}
206206
]
207207
});
208208

@@ -256,9 +256,9 @@ describe("task lifecycle hooks", () => {
256256

257257
const contextFactory = createLiveContextFactory({
258258
plugins: [
259-
createContextPlugin(context => {
260-
context.container.register(TestTaskDefinition);
261-
})
259+
(container: Container) => {
260+
container.register(TestTaskDefinition);
261+
}
262262
]
263263
});
264264

@@ -336,9 +336,9 @@ describe("task lifecycle hooks", () => {
336336

337337
const contextFactory = createLiveContextFactory({
338338
plugins: [
339-
createContextPlugin(context => {
340-
context.container.register(TestTaskDefinition);
341-
})
339+
(container: Container) => {
340+
container.register(TestTaskDefinition);
341+
}
342342
]
343343
});
344344

packages/background-tasks/__tests__/runner/taskTenant.test.ts

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ import { useTaskHandler } from "~tests/helpers/useTaskHandler";
66
import { TaskDefinition } from "@webiny/api-core/features/task/TaskDefinition/index.js";
77
import { TaskController } from "@webiny/api-core/features/task/TaskController/index.js";
88
import { TenantContext } from "@webiny/api-core/features/tenancy/TenantContext/index.js";
9-
import { createContextPlugin } from "@webiny/api";
9+
import type { Container } from "@webiny/di";
1010

1111
const TASK_ID = "taskRunnerTask";
1212

@@ -38,9 +38,9 @@ describe("task tenant", () => {
3838
it("should properly set the tenant", async () => {
3939
const contextFactory = createLiveContextFactory({
4040
plugins: [
41-
createContextPlugin(context => {
42-
context.container.register(TestingRunTaskDefinition);
43-
})
41+
(container: Container) => {
42+
container.register(TestingRunTaskDefinition);
43+
}
4444
]
4545
});
4646

@@ -59,9 +59,9 @@ describe("task tenant", () => {
5959

6060
const { handle } = useTaskHandler({
6161
plugins: [
62-
createContextPlugin(context => {
63-
context.container.register(TestingRunTaskDefinition);
64-
})
62+
(container: Container) => {
63+
container.register(TestingRunTaskDefinition);
64+
}
6565
]
6666
});
6767

0 commit comments

Comments
 (0)