25 lines
		
	
	
		
			932 B
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			25 lines
		
	
	
		
			932 B
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
const { toSortedArray } = require('./sort-files');
 | 
						|
const { challengeFiles } = require('./__fixtures__/challenges');
 | 
						|
 | 
						|
describe('sort-files', () => {
 | 
						|
  describe('toSortedArray', () => {
 | 
						|
    it('should return an array', () => {
 | 
						|
      const sorted = toSortedArray(challengeFiles);
 | 
						|
      expect(Array.isArray(sorted)).toBe(true);
 | 
						|
    });
 | 
						|
    it('should not modify the challenges', () => {
 | 
						|
      const sorted = toSortedArray(challengeFiles);
 | 
						|
      const expected = Object.values(challengeFiles);
 | 
						|
      expect(sorted).toEqual(expect.arrayContaining(expected));
 | 
						|
      expect(sorted.length).toEqual(expected.length);
 | 
						|
    });
 | 
						|
 | 
						|
    it('should sort the objects into html, js, css order', () => {
 | 
						|
      const sorted = toSortedArray(challengeFiles);
 | 
						|
      const sortedKeys = sorted.map(({ key }) => key);
 | 
						|
      const expected = ['indexhtml', 'indexjsx', 'indexjs', 'indexcss'];
 | 
						|
      expect(sortedKeys).toStrictEqual(expected);
 | 
						|
    });
 | 
						|
  });
 | 
						|
});
 |