MCPcopy Create free account
hub / github.com/imgproxy/imgproxy / TestStringSliceFile

Function TestStringSliceFile

env/types_test.go:542–603  ·  view source on GitHub ↗
(t *testing.T)

Source from the content-addressed store, hash-verified

540}
541
542func TestStringSliceFile(t *testing.T) {
543 tests := []struct {
544 content string
545 want []string
546 }{
547 {content: "line1\nline2\nline3\n", want: []string{"line1", "line2", "line3"}},
548 {
549 content: "line1\n\nline2\n\n\nline3\n",
550 want: []string{"line1", "line2", "line3"},
551 },
552 {
553 content: "line1\n# comment\nline2\n# another comment\nline3\n",
554 want: []string{"line1", "line2", "line3"},
555 },
556 {
557 content: " line1 \n line2\nline3 \n",
558 want: []string{"line1", "line2", "line3"},
559 },
560 {content: "line1\nline2\nline3", want: []string{"line1", "line2", "line3"}},
561 }
562
563 for _, tt := range tests {
564 t.Run(fmt.Sprint(tt.want), func(t *testing.T) {
565 tmpfile, err := os.CreateTemp(t.TempDir(), "test-*.txt")
566 require.NoError(t, err)
567 defer os.Remove(tmpfile.Name())
568
569 _, err = tmpfile.WriteString(tt.content)
570 require.NoError(t, err)
571 tmpfile.Close()
572
573 t.Setenv(testVar, tmpfile.Name())
574 desc := env.StringSliceFile(testVar)
575
576 var result []string
577 require.NoError(t, desc.Parse(&result))
578
579 assert.Equal(t, tt.want, result)
580 })
581 }
582
583 t.Run("returns nil for empty path", func(t *testing.T) {
584 t.Setenv(testVar, "")
585 desc := env.StringSliceFile(testVar)
586
587 var result []string
588 require.NoError(t, desc.Parse(&result))
589
590 assert.Nil(t, result)
591 })
592
593 t.Run("returns error for nonexistent file", func(t *testing.T) {
594 t.Setenv(testVar, "/nonexistent/file.txt")
595 desc := env.StringSliceFile(testVar)
596
597 var result []string
598 err := desc.Parse(&result)
599

Callers

nothing calls this directly

Calls 6

StringSliceFileFunction · 0.92
RunMethod · 0.80
RemoveMethod · 0.80
ParseMethod · 0.80
CloseMethod · 0.65
ErrorMethod · 0.65

Tested by

no test coverage detected