diff --git a/src/utils/Result.tsx b/src/utils/Result.tsx
index a381fd21..5f49e703 100644
--- a/src/utils/Result.tsx
+++ b/src/utils/Result.tsx
@@ -3,8 +3,10 @@ import { Row } from 'reactstrap';
import classNames from 'classnames';
import { SimpleCard } from './SimpleCard';
-interface ResultProps {
- type: 'success' | 'error' | 'warning';
+export type ResultType = 'success' | 'error' | 'warning';
+
+export interface ResultProps {
+ type: ResultType;
className?: string;
small?: boolean;
}
diff --git a/test/utils/Result.test.tsx b/test/utils/Result.test.tsx
new file mode 100644
index 00000000..ab0062d2
--- /dev/null
+++ b/test/utils/Result.test.tsx
@@ -0,0 +1,46 @@
+import { shallow, ShallowWrapper } from 'enzyme';
+import { Result, ResultProps, ResultType } from '../../src/utils/Result';
+import { SimpleCard } from '../../src/utils/SimpleCard';
+
+describe('', () => {
+ let wrapper: ShallowWrapper;
+ const createWrapper = (props: ResultProps) => {
+ wrapper = shallow();
+
+ return wrapper;
+ };
+
+ afterEach(() => wrapper?.unmount());
+
+ it.each([
+ [ 'success' as ResultType, 'bg-main text-white' ],
+ [ 'error' as ResultType, 'bg-danger text-white' ],
+ [ 'warning' as ResultType, 'bg-warning' ],
+ ])('renders expected classes based on type', (type, expectedClasses) => {
+ const wrapper = createWrapper({ type });
+ const innerCard = wrapper.find(SimpleCard);
+
+ expect(innerCard.prop('className')).toEqual(`text-center ${expectedClasses}`);
+ });
+
+ it.each([
+ [ undefined ],
+ [ 'foo' ],
+ [ 'bar' ],
+ ])('renders provided classes in root element', (className) => {
+ const wrapper = createWrapper({ type: 'success', className });
+
+ expect(wrapper.prop('className')).toEqual(className);
+ });
+
+ it.each([{ small: true }, { small: false }])('renders small results properly', ({ small }) => {
+ const wrapper = createWrapper({ type: 'success', small });
+ const bigElement = wrapper.find('.col-md-10');
+ const smallElement = wrapper.find('.col-12');
+ const innerCard = wrapper.find(SimpleCard);
+
+ expect(bigElement).toHaveLength(small ? 0 : 1);
+ expect(smallElement).toHaveLength(small ? 1 : 0);
+ expect(innerCard.prop('bodyClassName')).toEqual(small ? 'p-2' : '');
+ });
+});