11import fs = require( 'fs' ) ;
2+ import path = require( 'path' ) ;
23import chai = require( 'chai' ) ;
4+ import build = require( './build' ) ;
35
4- function getFileText ( file : string ) {
5- return fs . existsSync ( file ) ? fs . readFileSync ( file , 'utf8' ) : undefined ;
6+ const generatedFolder = "generated" ;
7+ const baselineFolder = "baselines" ;
8+
9+ function ensureCleanGeneratedFolder ( ) {
10+ if ( fs . existsSync ( generatedFolder ) ) {
11+ for ( const fileName of fs . readdirSync ( generatedFolder ) ) {
12+ fs . unlinkSync ( path . join ( generatedFolder , fileName ) ) ;
13+ }
14+ fs . rmdirSync ( generatedFolder ) ;
15+ }
16+ fs . mkdirSync ( generatedFolder ) ;
617}
718
8- describe ( "Compare generated with baselines" , ( ) => {
9- for ( var file of fs . readdirSync ( 'generated' ) ) {
10- var generatedText = getFileText ( 'generated/' + file ) ;
11- var baselinesText = getFileText ( 'baselines/' + file ) ;
19+ // Ensure generated folder
20+ ensureCleanGeneratedFolder ( ) ;
1221
13- addTestCase ( file , generatedText , baselinesText ) ;
14- }
15- } )
22+ // Generate the new baselines
23+ for ( const fileName of fs . readdirSync ( 'cases' ) ) {
24+ describe ( "Generating baseline for " + fileName , ( ) => {
25+ const text = fs . readFileSync ( path . join ( './cases' , fileName ) , 'utf8' ) ;
26+ const parsedFileName = path . parse ( fileName ) ;
27+ const { markerScopes, wholeBaseline } = build . generateScopes ( text , parsedFileName ) ;
28+ if ( markerScopes ) {
29+ addTestCase ( parsedFileName . name + '.txt' , markerScopes ) ;
30+ }
31+ addTestCase ( parsedFileName . name + '.baseline.txt' , wholeBaseline ) ;
32+ } ) ;
33+ }
34+
35+ function addTestCase ( file : string , generatedText : string ) {
36+ const generatedFileName = path . join ( generatedFolder , file ) ;
37+ fs . writeFileSync ( generatedFileName , generatedText , "utf8" ) ;
1638
17- function addTestCase ( file : string , generatedText : string , baselinesText : string ) {
18- it ( 'Comparing ' + file , ( ) => {
19- if ( baselinesText === undefined ) {
20- chai . assert ( false , "Extra generated baseline ") ;
39+ it ( 'Comparing generated' + file , ( ) => {
40+ const baselineFile = path . join ( baselineFolder , file ) ;
41+ if ( fs . existsSync ( baselineFile ) ) {
42+ chai . assert . equal ( generatedText , fs . readFileSync ( baselineFile , 'utf8' ) , "Expected baselines to match ") ;
2143 }
2244 else {
23- chai . assert . equal ( generatedText , baselinesText , "Expected baselines to match ") ;
45+ chai . assert ( false , "New generated baseline ") ;
2446 }
2547 } ) ;
2648}
0 commit comments