mirror of
https://github.com/crypto-pro-web/crypto-pro-js.git
synced 2024-11-24 00:55:00 +03:00
add getPluginVersion & getCspVersion methods
This commit is contained in:
parent
4f29faf3c3
commit
a0d60b0de8
4
package-lock.json
generated
4
package-lock.json
generated
@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "crypto-pro",
|
||||
"version": "2.2.0",
|
||||
"name": "@gaarutyunov/crypto-pro-fork",
|
||||
"version": "2.2.2",
|
||||
"lockfileVersion": 1,
|
||||
"requires": true,
|
||||
"dependencies": {
|
||||
|
35
src/api/getCspVersion.test.ts
Normal file
35
src/api/getCspVersion.test.ts
Normal file
@ -0,0 +1,35 @@
|
||||
import 'cadesplugin';
|
||||
import { getCspVersion } from './getCspVersion';
|
||||
|
||||
const executionSteps = [
|
||||
Symbol('step 0'),
|
||||
Symbol('step 1'),
|
||||
Symbol('step 2'),
|
||||
Symbol('step 3'),
|
||||
Symbol('step 4'),
|
||||
Symbol('step 5'),
|
||||
];
|
||||
|
||||
// "any" because of using toString on the literal
|
||||
const executionFlow: any = {
|
||||
[executionSteps[0]]: {
|
||||
CSPVersion: jest.fn(() => executionSteps[1]),
|
||||
},
|
||||
[executionSteps[1]]: {
|
||||
toString: jest.fn(() => executionSteps[2]),
|
||||
},
|
||||
[executionSteps[2]]: '4.0.9971',
|
||||
};
|
||||
|
||||
window.cadesplugin.__defineExecutionFlow(executionFlow);
|
||||
window.cadesplugin.CreateObjectAsync.mockImplementation(
|
||||
() => executionSteps[0],
|
||||
);
|
||||
|
||||
describe('getCspVersion', () => {
|
||||
test('returns information about CSP', async () => {
|
||||
const cspVersion = await getCspVersion();
|
||||
|
||||
expect(cspVersion).toStrictEqual('4.0.9971');
|
||||
});
|
||||
});
|
40
src/api/getCspVersion.ts
Normal file
40
src/api/getCspVersion.ts
Normal file
@ -0,0 +1,40 @@
|
||||
import { _afterPluginsLoaded } from '../helpers/_afterPluginsLoaded';
|
||||
import { _extractMeaningfulErrorMessage } from '../helpers/_extractMeaningfulErrorMessage';
|
||||
import {
|
||||
__cadesAsyncToken__,
|
||||
__createCadesPluginObject__,
|
||||
_generateCadesFn,
|
||||
} from '../helpers/_generateCadesFn';
|
||||
|
||||
/**
|
||||
* Предоставляет информацию о системе
|
||||
*
|
||||
* @returns информацию о CSP
|
||||
*/
|
||||
export const getCspVersion = _afterPluginsLoaded((): string => {
|
||||
let cspVersion = null;
|
||||
|
||||
return eval(
|
||||
_generateCadesFn(function getCspVersion(): string {
|
||||
let cadesAbout;
|
||||
|
||||
try {
|
||||
cadesAbout =
|
||||
__cadesAsyncToken__ + __createCadesPluginObject__('CAdESCOM.About');
|
||||
|
||||
cspVersion = __cadesAsyncToken__ + cadesAbout.CSPVersion();
|
||||
|
||||
cspVersion = __cadesAsyncToken__ + cspVersion.toString();
|
||||
} catch (error) {
|
||||
console.error(error);
|
||||
|
||||
throw new Error(
|
||||
_extractMeaningfulErrorMessage(error) ||
|
||||
'Ошибка при получении версии системы',
|
||||
);
|
||||
}
|
||||
|
||||
return cspVersion;
|
||||
}),
|
||||
);
|
||||
});
|
35
src/api/getPluginVersion.test.ts
Normal file
35
src/api/getPluginVersion.test.ts
Normal file
@ -0,0 +1,35 @@
|
||||
import 'cadesplugin';
|
||||
import { getPluginVersion } from './getPluginVersion';
|
||||
|
||||
const executionSteps = [
|
||||
Symbol('step 0'),
|
||||
Symbol('step 1'),
|
||||
Symbol('step 2'),
|
||||
Symbol('step 3'),
|
||||
];
|
||||
|
||||
// "any" because of using toString on the literal
|
||||
const executionFlow: any = {
|
||||
[executionSteps[0]]: {
|
||||
PluginVersion: executionSteps[1],
|
||||
Version: executionSteps[2],
|
||||
},
|
||||
[executionSteps[1]]: undefined,
|
||||
[executionSteps[2]]: {
|
||||
toString: jest.fn(() => executionSteps[3]),
|
||||
},
|
||||
[executionSteps[3]]: '2.0.13771',
|
||||
};
|
||||
|
||||
window.cadesplugin.__defineExecutionFlow(executionFlow);
|
||||
window.cadesplugin.CreateObjectAsync.mockImplementation(
|
||||
() => executionSteps[0],
|
||||
);
|
||||
|
||||
describe('getPluginVersion', () => {
|
||||
test('returns information about plugin', async () => {
|
||||
const pluginVersion = await getPluginVersion();
|
||||
|
||||
expect(pluginVersion).toStrictEqual('2.0.13771');
|
||||
});
|
||||
});
|
44
src/api/getPluginVersion.ts
Normal file
44
src/api/getPluginVersion.ts
Normal file
@ -0,0 +1,44 @@
|
||||
import { _afterPluginsLoaded } from '../helpers/_afterPluginsLoaded';
|
||||
import {
|
||||
__cadesAsyncToken__,
|
||||
__createCadesPluginObject__,
|
||||
_generateCadesFn,
|
||||
} from '../helpers/_generateCadesFn';
|
||||
import { _extractMeaningfulErrorMessage } from '../helpers/_extractMeaningfulErrorMessage';
|
||||
|
||||
/**
|
||||
* Предоставляет информацию о системе
|
||||
*
|
||||
* @returns информацию о плагине
|
||||
*/
|
||||
export const getPluginVersion = _afterPluginsLoaded((): string => {
|
||||
let cadesVersion = null;
|
||||
|
||||
return eval(
|
||||
_generateCadesFn(function getPluginVersion(): string {
|
||||
let cadesAbout;
|
||||
|
||||
try {
|
||||
cadesAbout =
|
||||
__cadesAsyncToken__ + __createCadesPluginObject__('CAdESCOM.About');
|
||||
|
||||
cadesVersion = __cadesAsyncToken__ + cadesAbout.PluginVersion;
|
||||
|
||||
if (!cadesVersion) {
|
||||
cadesVersion = __cadesAsyncToken__ + cadesAbout.Version;
|
||||
}
|
||||
|
||||
cadesVersion = __cadesAsyncToken__ + cadesVersion.toString();
|
||||
} catch (error) {
|
||||
console.error(error);
|
||||
|
||||
throw new Error(
|
||||
_extractMeaningfulErrorMessage(error) ||
|
||||
'Ошибка при получении информации о плагине',
|
||||
);
|
||||
}
|
||||
|
||||
return cadesVersion;
|
||||
}),
|
||||
);
|
||||
});
|
@ -10,3 +10,5 @@ export * from './createAttachedSignature';
|
||||
export * from './addAttachedSignature';
|
||||
export * from './createHash';
|
||||
export * from './certificate';
|
||||
export * from './getCspVersion';
|
||||
export * from './getPluginVersion';
|
||||
|
Loading…
Reference in New Issue
Block a user