@kadena/kadena-cli
Version:
Kadena CLI tool to interact with the Kadena blockchain (manage keys, transactions, etc.)
75 lines • 3.32 kB
JavaScript
/// <reference lib="dom" />
import { afterEach, beforeEach, describe, expect, it } from 'vitest';
import { createPrincipalSuccessData } from '../../../../mocks/data/accountDetails.js';
import { server, useMswDynamicHandler, useMswHandler, } from '../../../../mocks/server.js';
import { createAccountName } from '../createAccountName.js';
import { defaultConfigMock } from './mocks.js';
describe('createAccountName', () => {
beforeEach(() => {
useMswDynamicHandler({
getResponse: async (request) => {
const data = (await request.json());
const parsedCMD = JSON.parse(data.cmd);
// create principal with only one key
if (parsedCMD.payload.exec.data.ks.keys.length === 1) {
return [
{
result: {
data: `k:${parsedCMD.payload.exec.data.ks.keys}`,
status: 'success',
},
},
{ status: 200 },
];
}
return [createPrincipalSuccessData, { status: 200 }];
},
});
});
afterEach(() => {
server.resetHandlers();
});
it('should throw an error when public keys are empty', async () => {
await expect(async () => {
await createAccountName({
publicKeys: [],
chainId: defaultConfigMock.chainId,
predicate: defaultConfigMock.predicate,
networkConfig: defaultConfigMock.networkConfig,
});
}).rejects.toThrow('No public keys provided to create an account.');
});
it('should call createPrincipal method and return w:account when multiple public keys are provided', async () => {
const accountName = await createAccountName({
publicKeys: ['publicKeys1', 'publicKeys2'],
chainId: defaultConfigMock.chainId,
predicate: defaultConfigMock.predicate,
networkConfig: defaultConfigMock.networkConfig,
});
expect(accountName).toBe('w:FxlQEvb6qHb50NClEnpwbT2uoJHuAu39GTSwXmASH2k:keys-all');
});
it('should call createPrincipal method and return k:account when only one public key is provided', async () => {
const accountName = await createAccountName({
publicKeys: ['publicKey1'],
chainId: defaultConfigMock.chainId,
predicate: defaultConfigMock.predicate,
networkConfig: defaultConfigMock.networkConfig,
});
expect(accountName).toBe('k:publicKey1');
});
it('should throw an error when createPrincipal method throws an error', async () => {
useMswHandler({
response: null,
status: 500,
});
await expect(async () => {
await createAccountName({
publicKeys: ['publicKeys1', 'publicKeys2'],
chainId: defaultConfigMock.chainId,
predicate: defaultConfigMock.predicate,
networkConfig: defaultConfigMock.networkConfig,
});
}).rejects.toThrow('There was an error creating the account name:');
});
});
//# sourceMappingURL=createAccountName.test.js.map