freeCodeCamp/tools/scripts/seed/createPathMigrationMap.test.js

37 lines
1.2 KiB
JavaScript

/* global describe expect */
const { isPlainObject } = require('lodash');
const { createPathMigrationMap } = require('./createPathMigrationMap');
const mockCurriculum = require('./__mocks__/curriculum.json');
describe('createPathMigrationMap', () => {
const pathMap = createPathMigrationMap(mockCurriculum);
it('is a function', () => {
expect(typeof createPathMigrationMap).toEqual('function');
});
it('returns an object', () => {
expect(isPlainObject(pathMap)).toBe(true);
});
it('maps a challenge title to the correct uri slug', () => {
expect.assertions(3);
const slugOne = '/learn/super-block-b/block-one/challenge-ten';
const slugTwo = '/learn/super-block-a/block-two/challenge-five';
const slugThree = '/learn/super-block-a/block-one/challenge-three';
expect(pathMap['challenge-ten']).toEqual(slugOne);
expect(pathMap['challenge-five']).toEqual(slugTwo);
expect(pathMap['challenge-three']).toEqual(slugThree);
});
it('does not add uri migrations for private challenges', () => {
expect(pathMap['challenge-nine']).toBeUndefined();
});
it('output snapshot', () => {
expect(createPathMigrationMap(mockCurriculum)).toMatchSnapshot();
});
});