mirror of
https://github.com/crypto-pro-web/crypto-pro-js.git
synced 2024-11-23 16:44:59 +03:00
Добавил тесты для создания отсоединенной подписи
This commit is contained in:
parent
cfd244df02
commit
bdcb3d7542
75
src/api/createDetachedSignature.test.ts
Normal file
75
src/api/createDetachedSignature.test.ts
Normal file
@ -0,0 +1,75 @@
|
||||
import 'cadesplugin';
|
||||
import { rawCertificates, parsedCertificates } from '../__mocks__/certificates';
|
||||
import { createDetachedSignature } from './createDetachedSignature';
|
||||
import { _getCadesCert } from '../helpers/_getCadesCert';
|
||||
|
||||
const [rawCertificateMock] = rawCertificates;
|
||||
const [parsedCertificateMock] = parsedCertificates;
|
||||
|
||||
jest.mock('../helpers/_getCadesCert', () => ({ _getCadesCert: jest.fn(() => rawCertificateMock) }));
|
||||
|
||||
beforeEach(() => {
|
||||
(_getCadesCert as jest.Mock).mockClear();
|
||||
});
|
||||
|
||||
const executionSteps = [
|
||||
Symbol('step 0'),
|
||||
Symbol('step 1'),
|
||||
Symbol('step 2'),
|
||||
Symbol('step 3'),
|
||||
Symbol('step 4'),
|
||||
Symbol('step 5'),
|
||||
];
|
||||
|
||||
const executionFlow = {
|
||||
[executionSteps[0]]: {
|
||||
propset_Name: jest.fn(),
|
||||
propset_Value: jest.fn(),
|
||||
},
|
||||
[executionSteps[1]]: {
|
||||
propset_ContentEncoding: jest.fn(),
|
||||
propset_Content: jest.fn(),
|
||||
SignHash: jest.fn(() => executionSteps[4]),
|
||||
},
|
||||
[executionSteps[2]]: {
|
||||
propset_Certificate: jest.fn(),
|
||||
AuthenticatedAttributes2: executionSteps[3],
|
||||
propset_Options: jest.fn(),
|
||||
},
|
||||
[executionSteps[3]]: {
|
||||
Add: jest.fn(),
|
||||
},
|
||||
[executionSteps[4]]: 'signature',
|
||||
[executionSteps[5]]: {
|
||||
propset_Algorithm: jest.fn(),
|
||||
SetHashValue: jest.fn(),
|
||||
},
|
||||
};
|
||||
|
||||
window.cadesplugin.__defineExecutionFlow(executionFlow);
|
||||
window.cadesplugin.CreateObjectAsync.mockImplementation((object) => {
|
||||
switch (object) {
|
||||
case 'CADESCOM.CPAttribute':
|
||||
return executionSteps[0];
|
||||
case 'CAdESCOM.CadesSignedData':
|
||||
return executionSteps[1];
|
||||
case 'CAdESCOM.CPSigner':
|
||||
return executionSteps[2];
|
||||
case 'CAdESCOM.HashedData':
|
||||
return executionSteps[5];
|
||||
}
|
||||
});
|
||||
|
||||
describe('createDetachedSignature', () => {
|
||||
test('uses specified certificate', async () => {
|
||||
await createDetachedSignature(parsedCertificateMock.thumbprint, 'message');
|
||||
|
||||
expect(_getCadesCert).toHaveBeenCalledWith(parsedCertificateMock.thumbprint);
|
||||
});
|
||||
|
||||
test('returns signature', async () => {
|
||||
const signature = await createDetachedSignature(parsedCertificateMock.thumbprint, 'message');
|
||||
|
||||
expect(signature).toEqual('signature');
|
||||
});
|
||||
});
|
Loading…
Reference in New Issue
Block a user