diff --git a/make.go b/make.go index 3cd537a..3de34a9 100644 --- a/make.go +++ b/make.go @@ -11,5 +11,5 @@ func Make(conf Config) (string, error) { return "", err } - return fmt.Sprintf("%s%s%s%s%s", conf.prefix, name, conf.original, conf.suffix, conf.original), nil + return fmt.Sprintf("%s%s%s%s%s", conf.prefix, name, conf.original, conf.suffix, conf.extension), nil } diff --git a/make_test.go b/make_test.go index e9cc006..1196967 100644 --- a/make_test.go +++ b/make_test.go @@ -8,10 +8,39 @@ import ( ) func TestMake(t *testing.T) { - conf := NewConfig(WithGenerator(func() (string, error) { return "abc", nil })) - st, err := Make(conf) - assert.NoError(t, err) - assert.Equal(t, "abc", st) + genOpt := WithGenerator(func() (string, error) { return "abc", nil }) + testcases := []struct { + name string + opts []Option + exp string + }{ + {"basic", nil, "abc.txt"}, + {"with prefix", []Option{WithPrefix("foo")}, "foo_abc.txt"}, + {"with suffix", []Option{WithSuffix("bar")}, "abc_bar.txt"}, + {"with original", []Option{WithOriginal("file")}, "abc_file.txt"}, + {"without ext", []Option{WithoutExtension()}, "abc"}, + {"with ext", []Option{WithExtension("xml")}, "abc.xml"}, + { + "with all", + []Option{ + WithPrefix("pre"), + WithOriginal("file"), + WithSuffix("suff"), + WithExtension("svg"), + }, + "pre_abc_file_suff.svg", + }, + } + + for _, testcase := range testcases { + t.Run(testcase.name, func(sub *testing.T) { + opts := append(testcase.opts, genOpt) + conf := NewConfig(opts...) + st, err := Make(conf) + assert.NoError(t, err) + assert.Equal(t, testcase.exp, st) + }) + } } func TestMakeErr(t *testing.T) {