refactor: sortFiles -> toSortedArray
This commit is contained in:
committed by
Mrugesh Mohapatra
parent
1ee5e24d0f
commit
52cb6adf02
@ -16,7 +16,7 @@ import {
|
|||||||
} from '../redux';
|
} from '../redux';
|
||||||
import { userSelector, isDonationModalOpenSelector } from '../../../redux';
|
import { userSelector, isDonationModalOpenSelector } from '../../../redux';
|
||||||
import { Loader } from '../../../components/helpers';
|
import { Loader } from '../../../components/helpers';
|
||||||
import { sortFiles } from '../../../../../utils/sort-files';
|
import { toSortedArray } from '../../../../../utils/sort-files';
|
||||||
|
|
||||||
import './editor.css';
|
import './editor.css';
|
||||||
|
|
||||||
@ -164,7 +164,7 @@ class Editor extends Component {
|
|||||||
// NOTE: the ARIA state is controlled by fileKey, so changes to it must
|
// NOTE: the ARIA state is controlled by fileKey, so changes to it must
|
||||||
// trigger a re-render. Hence state:
|
// trigger a re-render. Hence state:
|
||||||
this.state = {
|
this.state = {
|
||||||
fileKey: sortFiles(challengeFiles)[0].key
|
fileKey: toSortedArray(challengeFiles)[0].key
|
||||||
};
|
};
|
||||||
|
|
||||||
this.options = {
|
this.options = {
|
||||||
|
@ -42,7 +42,7 @@ const {
|
|||||||
} = require('../../client/utils/challengeTypes');
|
} = require('../../client/utils/challengeTypes');
|
||||||
|
|
||||||
const { dasherize } = require('../../utils/slugs');
|
const { dasherize } = require('../../utils/slugs');
|
||||||
const { sortFiles } = require('../../utils/sort-files');
|
const { toSortedArray } = require('../../utils/sort-files');
|
||||||
|
|
||||||
const { testedLang } = require('../utils');
|
const { testedLang } = require('../utils');
|
||||||
|
|
||||||
@ -423,7 +423,7 @@ async function createTestRunner(challenge, solution, buildChallenge) {
|
|||||||
});
|
});
|
||||||
} else if (solution) {
|
} else if (solution) {
|
||||||
// fallback for single solution
|
// fallback for single solution
|
||||||
const sortedFiles = sortFiles(files);
|
const sortedFiles = toSortedArray(files);
|
||||||
|
|
||||||
files[sortedFiles[0].key].contents = solution;
|
files[sortedFiles[0].key].contents = solution;
|
||||||
} else {
|
} else {
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
exports.sortFiles = function sortFiles(challengeFiles) {
|
exports.toSortedArray = function toSortedArray(challengeFiles) {
|
||||||
const xs = Object.values(challengeFiles);
|
const xs = Object.values(challengeFiles);
|
||||||
// TODO: refactor this to use an ext array ['html', 'js', 'css'] and loop over
|
// TODO: refactor this to use an ext array ['html', 'js', 'css'] and loop over
|
||||||
// that.
|
// that.
|
||||||
|
@ -1,23 +1,23 @@
|
|||||||
/* global expect */
|
/* global expect */
|
||||||
|
|
||||||
const { sortFiles } = require('./sort-files');
|
const { toSortedArray } = require('./sort-files');
|
||||||
const { challengeFiles } = require('./__fixtures__/challenges');
|
const { challengeFiles } = require('./__fixtures__/challenges');
|
||||||
|
|
||||||
describe('sort-files', () => {
|
describe('sort-files', () => {
|
||||||
describe('sortFiles', () => {
|
describe('toSortedArray', () => {
|
||||||
it('should return an array', () => {
|
it('should return an array', () => {
|
||||||
const sorted = sortFiles(challengeFiles);
|
const sorted = toSortedArray(challengeFiles);
|
||||||
expect(Array.isArray(sorted)).toBe(true);
|
expect(Array.isArray(sorted)).toBe(true);
|
||||||
});
|
});
|
||||||
it('should not modify the challenges', () => {
|
it('should not modify the challenges', () => {
|
||||||
const sorted = sortFiles(challengeFiles);
|
const sorted = toSortedArray(challengeFiles);
|
||||||
const expected = Object.values(challengeFiles);
|
const expected = Object.values(challengeFiles);
|
||||||
expect(sorted).toEqual(expect.arrayContaining(expected));
|
expect(sorted).toEqual(expect.arrayContaining(expected));
|
||||||
expect(sorted.length).toEqual(expected.length);
|
expect(sorted.length).toEqual(expected.length);
|
||||||
});
|
});
|
||||||
|
|
||||||
it('should sort the objects into html, js, css order', () => {
|
it('should sort the objects into html, js, css order', () => {
|
||||||
const sorted = sortFiles(challengeFiles);
|
const sorted = toSortedArray(challengeFiles);
|
||||||
const sortedKeys = sorted.map(({ key }) => key);
|
const sortedKeys = sorted.map(({ key }) => key);
|
||||||
const expected = ['indexhtml', 'indexjsx', 'indexjs', 'indexcss'];
|
const expected = ['indexhtml', 'indexjsx', 'indexjs', 'indexcss'];
|
||||||
expect(sortedKeys).toStrictEqual(expected);
|
expect(sortedKeys).toStrictEqual(expected);
|
||||||
|
Reference in New Issue
Block a user