48 lines
1.3 KiB
JavaScript
48 lines
1.3 KiB
JavaScript
![]() |
/* global expect */
|
||
|
|
||
|
import '@testing-library/jest-dom/extend-expect';
|
||
|
|
||
|
import { getCompletedPercent } from './CompletionModal';
|
||
|
|
||
|
const completedChallengesIds = ['1', '3', '5'],
|
||
|
currentBlockIds = ['1', '3', '5', '7'],
|
||
|
id = '7',
|
||
|
fakeId = '12345',
|
||
|
fakeCompletedChallengesIds = ['1', '3', '5', '7', '8'];
|
||
|
|
||
|
describe('<CompletionModal />', () => {
|
||
|
describe('getCompletedPercent', () => {
|
||
|
it('returns 0 if no challenges have been completed', () => {
|
||
|
expect(getCompletedPercent([], currentBlockIds, fakeId)).toBe(0);
|
||
|
});
|
||
|
|
||
|
it('returns 25 if one out of four challenges are complete', () => {
|
||
|
expect(getCompletedPercent([], currentBlockIds, currentBlockIds[1])).toBe(
|
||
|
25
|
||
|
);
|
||
|
});
|
||
|
|
||
|
it('returns 75 if three out of four challenges are complete', () => {
|
||
|
expect(
|
||
|
getCompletedPercent(
|
||
|
completedChallengesIds,
|
||
|
currentBlockIds,
|
||
|
completedChallengesIds[0]
|
||
|
)
|
||
|
).toBe(75);
|
||
|
});
|
||
|
|
||
|
it('returns 100 if all challenges have been completed', () => {
|
||
|
expect(
|
||
|
getCompletedPercent(completedChallengesIds, currentBlockIds, id)
|
||
|
).toBe(100);
|
||
|
});
|
||
|
|
||
|
it('returns 100 if more challenges have been complete than exist', () => {
|
||
|
expect(
|
||
|
getCompletedPercent(fakeCompletedChallengesIds, currentBlockIds, id)
|
||
|
).toBe(100);
|
||
|
});
|
||
|
});
|
||
|
});
|