1
1
import fs = require( 'fs' ) ;
2
+ import path = require( 'path' ) ;
2
3
import chai = require( 'chai' ) ;
4
+ import build = require( './build' ) ;
3
5
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 ) ;
6
17
}
7
18
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 ( ) ;
12
21
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" ) ;
16
38
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 ") ;
21
43
}
22
44
else {
23
- chai . assert . equal ( generatedText , baselinesText , "Expected baselines to match ") ;
45
+ chai . assert ( false , "New generated baseline ") ;
24
46
}
25
47
} ) ;
26
48
}
0 commit comments