1
0
mirror of https://github.com/kremalicious/metamask-extension.git synced 2024-11-28 23:06:37 +01:00
metamask-extension/ui/pages/confirmation/util.test.ts

61 lines
2.0 KiB
TypeScript
Raw Normal View History

import { ResultComponent } from '@metamask/approval-controller';
import { processError, processString } from './util';
const FALLBACK_MESSAGE = 'Fallback Message';
const mockResultComponent: ResultComponent = {
key: 'mock-key',
name: 'mock-component',
properties: { message: 'mock1', message2: 'mock2' },
children: 'Mock child',
};
const expectedTemplateRendererComponent = {
key: 'mock-key',
props: {
message: 'mock1',
message2: 'mock2',
},
children: 'Mock child',
element: 'mock-component',
};
describe('processError', () => {
it('returns TemplateRendererComponent when input is not defined', () => {
const result = processError(undefined, FALLBACK_MESSAGE);
expect(result).toEqual({
key: 'error',
element: 'ActionableMessage',
props: { type: 'danger', message: FALLBACK_MESSAGE },
});
});
it('returns TemplateRendererComponent when input is a string', () => {
const result = processError('Error Message', FALLBACK_MESSAGE);
expect(result).toEqual({
key: 'error',
element: 'ActionableMessage',
props: { type: 'danger', message: 'Error Message' },
});
});
it('returns TemplateRendererComponent when input is a ResultComponent', () => {
const result = processError(mockResultComponent, FALLBACK_MESSAGE);
expect(result).toEqual(expectedTemplateRendererComponent);
});
});
describe('processString', () => {
it('returns string when input is not defined', () => {
const result = processString(undefined, FALLBACK_MESSAGE);
expect(result[0]).toEqual(FALLBACK_MESSAGE);
});
it('returns TemplateRendererComponent when input is a string', () => {
const result = processString('Hello', FALLBACK_MESSAGE);
expect(result).toEqual(['Hello']);
});
it('returns TemplateRendererComponent when input is a ResultComponent', () => {
const result = processString(mockResultComponent, FALLBACK_MESSAGE);
expect(result).toEqual(expectedTemplateRendererComponent);
});
});