import { expect } from 'chai'; import path from 'path'; import readDirectory from './../src/readDirectory'; const fixturesPath = path.resolve(__dirname, './fixtures/read-directory'); describe('readDirectory()', () => { context('target directory contains child directories', () => { it('gets names of the children directories', () => { let names; names = readDirectory(path.resolve(fixturesPath, 'children-directories')); expect(names).to.deep.equal(['bar', 'foo']); }); }); context('target directory contains child directories that do not contain index', () => { it('gets names of the children directories', () => { let names; names = readDirectory(path.resolve(fixturesPath, 'children-directories-without-index')); expect(names).to.deep.equal(['present.js']); }); }); context('target directory contains child directories (unsafe name)', () => { it('gets names of the children directories', () => { let names; names = readDirectory(path.resolve(fixturesPath, 'children-directories-unsafe-name')); expect(names).to.deep.equal(['present']); }); }); context.skip('target directory contains ./index.js', () => { it('does not include ./index.js', () => { let names; names = readDirectory(path.resolve(fixturesPath, 'children-index')); expect(names).to.deep.equal(['bar', 'foo']); }); }); context('target directory contains files', () => { it('refers to the files (with extension)', () => { let names; names = readDirectory(path.resolve(fixturesPath, 'children-files')); expect(names).to.deep.equal(['bar.js', 'foo.js']); }); }); context('target directory contains dot files', () => { it('ignores files', () => { let names; names = readDirectory(path.resolve(fixturesPath, 'children-dot-files')); expect(names).to.deep.equal(['present.js']); }); }); context('target directory contains files with no extension', () => { it('ignores files', () => { let names; names = readDirectory(path.resolve(fixturesPath, 'children-files-no-extension')); expect(names).to.deep.equal(['present.js']); }); }); context('target directory contains files with multiple extensions', () => { it('ignores files', () => { let names; names = readDirectory(path.resolve(fixturesPath, 'children-files-multiple-extensions')); expect(names).to.deep.equal(['present.js']); }); }); context('target directory contains directories and files with the same name', () => { it('prefers file', () => { let names; names = readDirectory(path.resolve(fixturesPath, 'children-directories-and-files')); expect(names).to.deep.equal(['foo.js', 'present.js']); }); }); });