2015-12-02 07:13:55 -08:00
/* eslint-env mocha */
2014-05-30 06:36:26 -06:00
var path = require ( 'path' ) ;
var assert = require ( '../helper' ) . assert ;
var util = require ( '../../lib/util' ) ;
describe ( 'util' , function ( ) {
var files ;
beforeEach ( function ( ) {
files = [
path . join ( 'a1' , 'b1' , 'c2' , 'd2.txt' ) ,
path . join ( 'a1' , 'b2' , 'c2' , 'd1.txt' ) ,
path . join ( 'a2.txt' ) ,
path . join ( 'a1' , 'b1' , 'c1' , 'd1.txt' ) ,
path . join ( 'a1' , 'b1' , 'c2' , 'd1.txt' ) ,
path . join ( 'a1' , 'b1.txt' ) ,
path . join ( 'a2' , 'b1' , 'c2.txt' ) ,
path . join ( 'a1' , 'b1' , 'c2' , 'd3.txt' ) ,
path . join ( 'a1' , 'b2' , 'c1' , 'd1.txt' ) ,
path . join ( 'a1.txt' ) ,
path . join ( 'a2' , 'b1' , 'c1.txt' ) ,
path . join ( 'a2' , 'b1.txt' )
] . slice ( ) ;
} ) ;
describe ( 'byShortPath' , function ( ) {
it ( 'sorts an array of filepaths, shortest first' , function ( ) {
files . sort ( util . byShortPath ) ;
var expected = [
path . join ( 'a1.txt' ) ,
path . join ( 'a2.txt' ) ,
path . join ( 'a1' , 'b1.txt' ) ,
path . join ( 'a2' , 'b1.txt' ) ,
path . join ( 'a2' , 'b1' , 'c1.txt' ) ,
path . join ( 'a2' , 'b1' , 'c2.txt' ) ,
path . join ( 'a1' , 'b1' , 'c1' , 'd1.txt' ) ,
path . join ( 'a1' , 'b1' , 'c2' , 'd1.txt' ) ,
path . join ( 'a1' , 'b1' , 'c2' , 'd2.txt' ) ,
path . join ( 'a1' , 'b1' , 'c2' , 'd3.txt' ) ,
path . join ( 'a1' , 'b2' , 'c1' , 'd1.txt' ) ,
path . join ( 'a1' , 'b2' , 'c2' , 'd1.txt' )
] ;
assert . deepEqual ( files , expected ) ;
} ) ;
} ) ;
describe ( 'uniqueDirs' , function ( ) {
it ( 'gets a list of unique directory paths' , function ( ) {
// not comparing order here, so we sort both
var got = util . uniqueDirs ( files ) . sort ( ) ;
var expected = [
'.' ,
'a1' ,
'a2' ,
path . join ( 'a1' , 'b1' ) ,
path . join ( 'a1' , 'b1' , 'c1' ) ,
path . join ( 'a1' , 'b1' , 'c2' ) ,
path . join ( 'a1' , 'b2' ) ,
path . join ( 'a1' , 'b2' , 'c1' ) ,
path . join ( 'a1' , 'b2' , 'c2' ) ,
path . join ( 'a2' , 'b1' )
] . sort ( ) ;
assert . deepEqual ( got , expected ) ;
} ) ;
} ) ;
describe ( 'dirsToCreate' , function ( ) {
it ( 'gets a sorted list of directories to create' , function ( ) {
var got = util . dirsToCreate ( files ) ;
var expected = [
'.' ,
'a1' ,
'a2' ,
path . join ( 'a1' , 'b1' ) ,
path . join ( 'a1' , 'b2' ) ,
path . join ( 'a2' , 'b1' ) ,
path . join ( 'a1' , 'b1' , 'c1' ) ,
path . join ( 'a1' , 'b1' , 'c2' ) ,
path . join ( 'a1' , 'b2' , 'c1' ) ,
path . join ( 'a1' , 'b2' , 'c2' )
] ;
assert . deepEqual ( got , expected ) ;
} ) ;
} ) ;
} ) ;