Skip to content

Commit

Permalink
fix: return null when deregistering an encoder
Browse files Browse the repository at this point in the history
  • Loading branch information
chrisguttandin committed Apr 26, 2024
1 parent 09498f4 commit 8c137ed
Show file tree
Hide file tree
Showing 3 changed files with 62 additions and 2 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ export interface IMediaEncoderHostWorkerCustomDefinition extends IWorkerDefiniti
};

response: {
result: undefined;
result: null;
};
};

Expand Down
4 changes: 3 additions & 1 deletion src/module.ts
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,9 @@ const requestPartialEncoding = createRequestPartialEncoding(getEncoderInstance);

createWorker<IMediaEncoderHostWorkerCustomDefinition>(self, <TWorkerImplementation<IMediaEncoderHostWorkerCustomDefinition>>{
deregister: async ({ encoderId }) => {
return { result: deregisterEncoder(encoderId) };
deregisterEncoder(encoderId);

return { result: null };
},
encode: async ({ encoderInstanceId, timeslice }) => {
const arrayBuffers =
Expand Down
58 changes: 58 additions & 0 deletions test/integration/module.js
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,64 @@ describe('module', () => {
worker = new Worker('base/src/module.js');
});

describe('deregister()', () => {
let encoderId;
let id;

beforeEach(() => {
encoderId = 17;
id = 43;
});

describe('with a not yet registered encoder', () => {
it('should return an error', (done) => {
worker.addEventListener('message', ({ data }) => {
expect(data).to.deep.equal({
error: {
// @todo Define a more meaningful error code.
code: -32603,
message: 'There was no encoder stored with the given id.'
},
id
});

done();
});

worker.postMessage({ id, method: 'deregister', params: { encoderId } });
});
});

describe('with a previously registered encoder', () => {
beforeEach((done) => {
const { port1, port2 } = new MessageChannel();

port2.onmessage = ({ data }) => {
port2.postMessage({ id: data.id, result: /^mime\/type$/ });
};

const onMessage = () => {
worker.removeEventListener('message', onMessage);

done();
};

worker.addEventListener('message', onMessage);
worker.postMessage({ id, method: 'register', params: { encoderId, port: port1 } }, [port1]);
});

it('should return null', (done) => {
worker.addEventListener('message', ({ data }) => {
expect(data).to.deep.equal({ id, result: null });

done();
});

worker.postMessage({ id, method: 'deregister', params: { encoderId } });
});
});
});

describe('encode()', () => {
// @todo
});
Expand Down

0 comments on commit 8c137ed

Please sign in to comment.