@@ -65,7 +65,7 @@ func TestTranspilerVariants(t *testing.T) {
6565 name : "main" ,
6666 content : `
6767#main
68- color: blue
68+ color: blue
6969` ,
7070 sourceSyntax : godartsass .SourceSyntaxSASS ,
7171 }
101101 {"Error in ImportResolver.Load" , godartsass.Options {}, godartsass.Args {Source : "@import \" colors\" ;" , ImportResolver : testImportResolver {name : "colors" , failOnLoad : true }}, false },
102102 {"Invalid OutputStyle" , godartsass.Options {}, godartsass.Args {Source : "a" , OutputStyle : "asdf" }, false },
103103 {"Invalid SourceSyntax" , godartsass.Options {}, godartsass.Args {Source : "a" , SourceSyntax : "asdf" }, false },
104- {"Erro logging" , godartsass.Options {}, godartsass.Args {Source : `@error "foo";` }, false },
104+ {"Error logging" , godartsass.Options {}, godartsass.Args {Source : `@error "foo";` }, false },
105105 } {
106106 test := test
107107 c .Run (test .name , func (c * qt.C ) {
@@ -236,6 +236,87 @@ div { p { color: $moo; } }`
236236 c .Assert (result .CSS , qt .Equals , "div p{color:#f442d1}" )
237237}
238238
239+ func TestSilenceDependencyDeprecations (t * testing.T ) {
240+ dir1 := t .TempDir ()
241+ headings := filepath .Join (dir1 , "_headings.scss" )
242+
243+ err := os .WriteFile (headings , []byte (`
244+ @use "sass:color";
245+ h1 { color: rgb(color.channel(#aaa, "red", $space: rgb), 0, 0); }
246+ h2 { color: rgb(color.red(#bbb), 0, 0); } // deprecated
247+ ` ), 0o644 )
248+ if err != nil {
249+ t .Fatalf ("Failed to write file: %v" , err )
250+ }
251+
252+ c := qt .New (t )
253+ src := `
254+ @use "sass:color";
255+ @use "headings";
256+ h3 { color: rgb(color.channel(#ccc, "red", $space: rgb), 0, 0); }
257+ `
258+
259+ args := godartsass.Args {
260+ OutputStyle : godartsass .OutputStyleCompressed ,
261+ IncludePaths : []string {dir1 },
262+ }
263+
264+ tests := []struct {
265+ name string
266+ src string
267+ silenceDependencyDeprecations bool
268+ expectedLogMessage string
269+ expectedResult string
270+ }{
271+ {
272+ name : "A" ,
273+ src : src ,
274+ silenceDependencyDeprecations : false ,
275+ expectedLogMessage : "color.red() is deprecated" ,
276+ expectedResult : "h1{color:#a00}h2{color:#b00}h3{color:#c00}" ,
277+ },
278+ {
279+ name : "B" ,
280+ src : src ,
281+ silenceDependencyDeprecations : true ,
282+ expectedLogMessage : "" ,
283+ expectedResult : "h1{color:#a00}h2{color:#b00}h3{color:#c00}" ,
284+ },
285+ {
286+ name : "C" ,
287+ src : src + "h4 { color: rgb(0, color.green(#ddd), 0); }" ,
288+ silenceDependencyDeprecations : true ,
289+ expectedLogMessage : "color.green() is deprecated" ,
290+ expectedResult : "h1{color:#a00}h2{color:#b00}h3{color:#c00}h4{color:#0d0}" ,
291+ },
292+ }
293+
294+ for _ , tt := range tests {
295+ t .Run (tt .name , func (t * testing.T ) {
296+ args .Source = tt .src
297+ args .SilenceDependencyDeprecations = tt .silenceDependencyDeprecations
298+ logMessage := ""
299+ transpiler , clean := newTestTranspiler (c , godartsass.Options {
300+ LogEventHandler : func (e godartsass.LogEvent ) {
301+ logMessage = e .Message
302+ },
303+ })
304+ defer clean ()
305+
306+ result , err := transpiler .Execute (args )
307+ c .Assert (err , qt .IsNil )
308+
309+ if tt .expectedLogMessage == "" {
310+ c .Assert (logMessage , qt .Equals , "" )
311+ } else {
312+ c .Assert (logMessage , qt .Contains , tt .expectedLogMessage )
313+ }
314+
315+ c .Assert (result .CSS , qt .Equals , tt .expectedResult )
316+ })
317+ }
318+ }
319+
239320func TestTranspilerParallel (t * testing.T ) {
240321 c := qt .New (t )
241322 transpiler , clean := newTestTranspiler (c , godartsass.Options {})
@@ -400,9 +481,9 @@ func BenchmarkTranspiler(b *testing.B) {
400481 padding: 0;
401482 list-style: none;
402483 }
403-
484+
404485 li { display: inline-block; }
405-
486+
406487 a {
407488 display: block;
408489 padding: 6px 12px;
0 commit comments