@@ -7,11 +7,54 @@ import (
77 "testing"
88
99 "github.com/microsoft/TypeScript/tsc/internal/core"
10+ "github.com/microsoft/TypeScript/tsc/internal/diagnostics"
11+ "github.com/microsoft/TypeScript/tsc/internal/locale"
1012 "github.com/microsoft/TypeScript/tsc/internal/testutil/contentmappertest"
13+ "github.com/microsoft/TypeScript/tsc/internal/testutil/harnessutil"
1114 "github.com/microsoft/TypeScript/tsc/internal/testutil/stringtestutil"
1215 "github.com/microsoft/TypeScript/tsc/internal/vfs/vfstest"
16+ "gotest.tools/v3/assert"
1317)
1418
19+ func TestOutputSanitizerVersionPadding (t * testing.T ) {
20+ t .Parallel ()
21+ for name , language := range map [string ]locale.Locale {"en" : locale .Default , "cs" : czech } {
22+ t .Run (name , func (t * testing.T ) {
23+ t .Parallel ()
24+ version := diagnostics .Version_0 .Localize (language , core .Version ())
25+ fakeVersion := diagnostics .Version_0 .Localize (language , harnessutil .FakeTSVersion )
26+ header := diagnostics .X_tsc_Colon_The_TypeScript_Compiler .Localize (language ) + " - "
27+ for _ , test := range []struct {
28+ name string
29+ input string
30+ want string
31+ }{
32+ {name : "version" , input : version , want : fakeVersion },
33+ {name : "version in prose" , input : version + " is installed" , want : fakeVersion + " is installed" },
34+ {name : "repeated versions" , input : version + ", " + version , want : fakeVersion + ", " + fakeVersion },
35+ {name : "header without logo" , input : header + version , want : header + fakeVersion },
36+ {
37+ name : "header with logo" ,
38+ input : fmt .Sprintf ("%-115s\x1b [44m \x1b [39;49m" , header + version ),
39+ want : fmt .Sprintf ("%-115s\x1b [44m \x1b [39;49m" , header + fakeVersion ),
40+ },
41+ {
42+ name : "narrow header with logo" ,
43+ input : fmt .Sprintf ("%-75s\x1b [44m \x1b [39;49m" , header + version ),
44+ want : fmt .Sprintf ("%-75s\x1b [44m \x1b [39;49m" , header + fakeVersion ),
45+ },
46+ } {
47+ t .Run (test .name , func (t * testing.T ) {
48+ t .Parallel ()
49+ sanitizer := & outputSanitizer {}
50+ sanitizer .addOutputLine (test .input )
51+ assert .Equal (t , strings .Join (sanitizer .outputLines , "\n " ), test .want )
52+ })
53+ }
54+ })
55+ }
56+ }
57+
1558func TestTscCommandline (t * testing.T ) {
1659 t .Parallel ()
1760 colorTest := func (subScenario string , env map [string ]string , outputIsTTY bool ) * tscInput {
0 commit comments