Skip to content

Commit ba8b60a

Browse files
committed
test(goldenfile): proper implmentation of golden file
1 parent 73d0020 commit ba8b60a

2 files changed

Lines changed: 35 additions & 5 deletions

File tree

adapter/render_to_string.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -27,9 +27,9 @@ func NewRenderString(u usecase.Usecase) *RenderString {
2727
}
2828
}
2929

30-
func (rs *RenderString) RenderHymn(ctx context.Context, buf *bytes.Buffer, number int) (string, error) {
30+
func (rs *RenderString) RenderHymn(ctx context.Context, buf *bytes.Buffer, number int, variant ...string) (string, error) {
3131
canv := canvas.NewCanvasWithDelegator(svg.New(buf), &RenderStringCanvasDelegator{})
32-
err := rs.usecase.RenderHymn(ctx, canv, number)
32+
err := rs.usecase.RenderHymn(ctx, canv, number, variant...)
3333
if err != nil {
3434
return "", err
3535
}

cmd/lab/test/snapshot/main.go

Lines changed: 33 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -229,17 +229,27 @@ func Assert(ctx context.Context, stringRenderer *adapter.RenderString, path stri
229229

230230
}
231231

232+
var variant = map[int][]string{
233+
24: []string{"a", "b"},
234+
30: []string{"a", "b"},
235+
31: []string{"a"},
236+
}
237+
232238
func GenerateGolden(ctx context.Context, stringRenderer *adapter.RenderString, path string) error {
233-
numFiles := 22
234-
for i := 1; i <= numFiles; i++ {
239+
numFiles := 31
240+
241+
renderAndSave := func(i int, variants ...string) error {
235242
buff := bytes.NewBuffer(nil)
236-
content, err := stringRenderer.RenderHymn(context.Background(), buff, i)
243+
content, err := stringRenderer.RenderHymn(context.Background(), buff, i, variants...)
237244
if err != nil {
238245
log.Printf("Problem creating file: %v\n", err)
239246
return err
240247
}
241248

242249
fileName := fmt.Sprintf("%s/goldenfiles/kj-%03d.svg", path, i)
250+
if len(variants) > 0 {
251+
fileName = fmt.Sprintf("%s/goldenfiles/kj-%03d%s.svg", path, i, variants[0])
252+
}
243253
fmt.Println("Creating golden for", fileName)
244254
file, err := os.Create(fileName)
245255
if err != nil {
@@ -248,6 +258,26 @@ func GenerateGolden(ctx context.Context, stringRenderer *adapter.RenderString, p
248258
}
249259
fmt.Fprint(file, content)
250260
file.Close()
261+
262+
return nil
263+
}
264+
265+
for i := 1; i <= numFiles; i++ {
266+
vs, ok := variant[i]
267+
if ok {
268+
for _, v := range vs {
269+
err := renderAndSave(i, v)
270+
if err != nil {
271+
return err
272+
}
273+
}
274+
} else {
275+
err := renderAndSave(i)
276+
if err != nil {
277+
return err
278+
}
279+
}
280+
251281
}
252282
return nil
253283
}

0 commit comments

Comments
 (0)