import { describe, it } from 'node:test'; import assert from 'node:assert/strict'; import { workers, assign } from 'moroutine'; import { identity } from './fixtures/worker-handle.ts'; describe('assign()', () => { it('returns a new task with worker set', () => { const run = workers(1); try { const task = identity(5); const assigned = assign(run.workers[0], task); assert.notStrictEqual(assigned, task); assert.equal(assigned.id, task.id); assert.deepEqual(assigned.args, task.args); assert.notEqual(assigned.uid, task.uid); assert.equal(assigned.worker, run.workers[0]); } finally { run[Symbol.dispose](); } }); it('does not modify the original task', () => { const run = workers(1); try { const task = identity(5); assign(run.workers[0], task); assert.equal(task.worker, undefined); } finally { run[Symbol.dispose](); } }); });