diff --git a/src/api/createAttachedSignature.test.ts b/src/api/createAttachedSignature.test.ts index b71d97b..582e192 100644 --- a/src/api/createAttachedSignature.test.ts +++ b/src/api/createAttachedSignature.test.ts @@ -49,17 +49,17 @@ window.cadesplugin.CreateObjectAsync.mockImplementation((object) => { describe('createAttachedSignature', () => { test('uses Buffer to encrypt the message', async () => { - const originalBufferFrom = (window as any).Buffer.from; + const originalBufferFrom = global.Buffer.from; - (window as any).Buffer.from = jest.fn(() => ({ + (global.Buffer.from as jest.Mock) = jest.fn(() => ({ toString: jest.fn(), })); await createAttachedSignature(parsedCertificateMock.thumbprint, 'message'); - expect((window as any).Buffer.from).toHaveBeenCalledTimes(1); + expect(global.Buffer.from).toHaveBeenCalledTimes(1); - (window as any).Buffer.from = originalBufferFrom; + global.Buffer.from = originalBufferFrom; }); test('uses specified certificate', async () => { diff --git a/src/api/createHash.test.ts b/src/api/createHash.test.ts new file mode 100644 index 0000000..baf00af --- /dev/null +++ b/src/api/createHash.test.ts @@ -0,0 +1,44 @@ +import 'cadesplugin'; +import { createHash } from './createHash'; + +const executionSteps = [Symbol('step 0'), Symbol('step 1')]; + +const executionFlow = { + [executionSteps[0]]: { + propset_Algorithm: jest.fn(), + propset_DataEncoding: jest.fn(), + Hash: jest.fn(), + Value: executionSteps[1], + }, + [executionSteps[1]]: 'hash', +}; + +window.cadesplugin.__defineExecutionFlow(executionFlow); +window.cadesplugin.CreateObjectAsync.mockImplementation((object) => { + switch (object) { + case 'CAdESCOM.HashedData': + return executionSteps[0]; + } +}); + +describe('createHash', () => { + test('uses Buffer to encrypt the message', async () => { + const originalBufferFrom = global.Buffer.from; + + (global.Buffer.from as jest.Mock) = jest.fn(() => ({ + toString: jest.fn(), + })); + + await createHash('message'); + + expect(global.Buffer.from).toHaveBeenCalledTimes(1); + + global.Buffer.from = originalBufferFrom; + }); + + test('returns created hash', async () => { + const hash = await createHash('message'); + + expect(hash).toEqual('hash'); + }); +});