@@ -71,7 +71,6 @@ func newTestSys(tscInput *tscInput) *testSys {
7171 },
7272 defaultLibraryPath : libPath ,
7373 cwd : cwd ,
74- output : []string {},
7574 currentWrite : & strings.Builder {},
7675 start : time .Now (),
7776 env : tscInput .env ,
@@ -101,8 +100,6 @@ type snapshot struct {
101100}
102101
103102type testSys struct {
104- // todo: original has write to output as a string[] because the separations are needed for baselining
105- output []string
106103 currentWrite * strings.Builder
107104 serializedDiff * snapshot
108105
@@ -179,23 +176,16 @@ func (s *testSys) GetEnvironmentVariable(name string) string {
179176}
180177
181178func sanitizeSysOutput (output string , prefixLine string , replaceString string ) string {
182- if index := strings .Index (output , prefixLine ); index != - 1 {
183- indexOfNewLine := strings .Index (output [index :], "\n " )
184- if indexOfNewLine != - 1 {
185- output = output [:index ] + replaceString + output [index + indexOfNewLine + 1 :]
179+ for {
180+ if index := strings .Index (output , prefixLine ); index != - 1 {
181+ indexOfNewLine := strings .Index (output [index :], "\n " )
182+ if indexOfNewLine != - 1 {
183+ output = output [:index ] + replaceString + output [index + indexOfNewLine + 1 :]
184+ continue
185+ }
186186 }
187+ return output
187188 }
188- return output
189- }
190-
191- func (s * testSys ) EndWrite () {
192- // todo: revisit if improving tsc/build/watch unittest baselines
193- output := s .currentWrite .String ()
194- s .currentWrite .Reset ()
195- output = sanitizeSysOutput (output , "Version " + core .Version (), "Version " + harnessutil .FakeTSVersion + "\n " )
196- output = sanitizeSysOutput (output , "build starting at " , "" )
197- output = sanitizeSysOutput (output , "build finished in " , "" )
198- s .output = append (s .output , output )
199189}
200190
201191func (s * testSys ) baselineProgram (baseline * strings.Builder , program * incremental.Program , watcher * execute.Watcher ) {
@@ -253,16 +243,19 @@ func (s *testSys) serializeState(baseline *strings.Builder) {
253243
254244func (s * testSys ) baselineOutput (baseline io.Writer ) {
255245 fmt .Fprint (baseline , "\n Output::\n " )
256- if len (s .output ) == 0 {
257- fmt .Fprint (baseline , "No output\n " )
258- return
259- }
260- // todo screen clears
261- s .printOutputs (baseline )
246+ fmt .Fprint (baseline , s .getOutput ())
247+ }
248+
249+ func (s * testSys ) getOutput () string {
250+ output := s .currentWrite .String ()
251+ output = sanitizeSysOutput (output , "Version " + core .Version (), "Version " + harnessutil .FakeTSVersion + "\n " )
252+ output = sanitizeSysOutput (output , "build starting at " , "" )
253+ output = sanitizeSysOutput (output , "build finished in " , "" )
254+ return output
262255}
263256
264257func (s * testSys ) clearOutput () {
265- s .output = [] string {}
258+ s .currentWrite . Reset ()
266259}
267260
268261func (s * testSys ) baselineFSwithDiff (baseline io.Writer ) {
@@ -368,11 +361,6 @@ func (s *testSys) addFsEntryDiff(diffs map[string]string, newDirContent *diffEnt
368361 }
369362}
370363
371- func (s * testSys ) printOutputs (baseline io.Writer ) {
372- // todo sanitize sys output
373- fmt .Fprint (baseline , strings .Join (s .output , "\n " ))
374- }
375-
376364func (s * testSys ) writeFileNoError (path string , content string , writeByteOrderMark bool ) {
377365 if err := s .fsFromFileMap ().WriteFile (path , content , writeByteOrderMark ); err != nil {
378366 panic (err )
0 commit comments