diff --git a/plugins/scaffolder-backend/src/scaffolder/tasks/MemoryTaskBroker.test.ts b/plugins/scaffolder-backend/src/scaffolder/tasks/MemoryTaskBroker.test.ts index f1493ab3d0..aa23044749 100644 --- a/plugins/scaffolder-backend/src/scaffolder/tasks/MemoryTaskBroker.test.ts +++ b/plugins/scaffolder-backend/src/scaffolder/tasks/MemoryTaskBroker.test.ts @@ -14,6 +14,8 @@ * limitations under the License. */ +import { TemplateEntityV1alpha1 } from '@backstage/catalog-model'; +import { TemplaterValues } from '../stages/templater/types'; import { MemoryDatabase } from './MemoryDatabase'; import { MemoryTaskBroker, TaskAgent } from './MemoryTaskBroker'; @@ -21,10 +23,13 @@ describe('MemoryTaskBroker', () => { const storage = new MemoryDatabase(); const broker = new MemoryTaskBroker(storage); + const taskSpec = { + values: {} as TemplaterValues, + template: {} as TemplateEntityV1alpha1, + }; + it('should claim a dispatched work item', async () => { - await broker.dispatch({ - metadata: '', - }); + await broker.dispatch(taskSpec); await expect(broker.claim()).resolves.toEqual(expect.any(TaskAgent)); }); @@ -33,14 +38,23 @@ describe('MemoryTaskBroker', () => { await expect(Promise.race([promise, 'waiting'])).resolves.toBe('waiting'); - await broker.dispatch({ metadata: 'foo' }); + await broker.dispatch(taskSpec); await expect(promise).resolves.toEqual(expect.any(TaskAgent)); }); it('should dispatch multiple items and claim them in order', async () => { - await broker.dispatch({ metadata: 'a' }); - await broker.dispatch({ metadata: 'b' }); - await broker.dispatch({ metadata: 'c' }); + await broker.dispatch({ + values: { owner: 'a' } as TemplaterValues, + template: {} as TemplateEntityV1alpha1, + }); + await broker.dispatch({ + values: { owner: 'b' } as TemplaterValues, + template: {} as TemplateEntityV1alpha1, + }); + await broker.dispatch({ + values: { owner: 'c' } as TemplaterValues, + template: {} as TemplateEntityV1alpha1, + }); const taskA = await broker.claim(); const taskB = await broker.claim(); @@ -48,13 +62,13 @@ describe('MemoryTaskBroker', () => { await expect(taskA).toEqual(expect.any(TaskAgent)); await expect(taskB).toEqual(expect.any(TaskAgent)); await expect(taskC).toEqual(expect.any(TaskAgent)); - await expect(taskA.spec.metadata).toBe('a'); - await expect(taskB.spec.metadata).toBe('b'); - await expect(taskC.spec.metadata).toBe('c'); + await expect(taskA.spec.values.owner).toBe('a'); + await expect(taskB.spec.values.owner).toBe('b'); + await expect(taskC.spec.values.owner).toBe('c'); }); it('should complete a task', async () => { - const dispatchResult = await broker.dispatch({ metadata: 'foo' }); + const dispatchResult = await broker.dispatch(taskSpec); const task = await broker.claim(); await task.complete('COMPLETED'); const taskRow = await storage.get(dispatchResult.taskId); @@ -62,7 +76,7 @@ describe('MemoryTaskBroker', () => { }); it('should fail a task', async () => { - const dispatchResult = await broker.dispatch({ metadata: 'foo' }); + const dispatchResult = await broker.dispatch(taskSpec); const task = await broker.claim(); await task.complete('FAILED'); const taskRow = await storage.get(dispatchResult.taskId);