Skip to content

Commit

Permalink
Added tests for parsing separate_files param and also expected files …
Browse files Browse the repository at this point in the history
…outputted when running plugin.
  • Loading branch information
willchang committed Aug 18, 2022
1 parent 77121ba commit bb0c8ee
Showing 1 changed file with 62 additions and 0 deletions.
62 changes: 62 additions & 0 deletions plugin_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -53,6 +53,24 @@ func TestParseOptionsForSourceRelative(t *testing.T) {
require.Equal(t, options.SourceRelative, false)
}

func TestParseOptionsForSeparateFiles(t *testing.T) {
req := new(plugin_go.CodeGeneratorRequest)
req.Parameter = proto.String("markdown,index.md,source_relative,separate_files")
options, err := ParseOptions(req)
require.NoError(t, err)
require.Equal(t, options.SeparateFiles, true)

req.Parameter = proto.String("markdown,index.md,source_relative,default")
options, err = ParseOptions(req)
require.NoError(t, err)
require.Equal(t, options.SeparateFiles, false)

req.Parameter = proto.String("markdown,index.md,source_relative")
options, err = ParseOptions(req)
require.NoError(t, err)
require.Equal(t, options.SeparateFiles, false)
}

func TestParseOptionsForCustomTemplate(t *testing.T) {
req := new(plugin_go.CodeGeneratorRequest)
req.Parameter = proto.String("/path/to/template.tmpl,/base/name/only/output.md")
Expand Down Expand Up @@ -150,3 +168,47 @@ func TestRunPluginForSourceRelative(t *testing.T) {
require.NotEmpty(t, resp.File[0].GetContent())
require.NotEmpty(t, resp.File[1].GetContent())
}

func TestRunPluginForSeparateFilesSourceRelative(t *testing.T) {
set, _ := utils.LoadDescriptorSet("fixtures", "fileset.pb")
req := utils.CreateGenRequest(set, "Booking.proto", "Vehicle.proto", "nested/Book.proto")
req.Parameter = proto.String("markdown,md,source_relative,separate_files")

plugin := new(Plugin)
resp, err := plugin.Generate(req)
require.NoError(t, err)
require.Len(t, resp.File, 3)
expected := map[string]int{"Booking.md": 1, "Vehicle.md": 1, "nested/Book.md": 1}
require.Contains(t, expected, resp.File[0].GetName())
delete(expected, resp.File[0].GetName())
require.Contains(t, expected, resp.File[1].GetName())
delete(expected, resp.File[1].GetName())
require.Contains(t, expected, resp.File[2].GetName())
delete(expected, resp.File[2].GetName())

require.NotEmpty(t, resp.File[0].GetContent())
require.NotEmpty(t, resp.File[1].GetContent())
require.NotEmpty(t, resp.File[2].GetContent())
}

func TestRunPluginForSeparateFilesNoSourceRelative(t *testing.T) {
set, _ := utils.LoadDescriptorSet("fixtures", "fileset.pb")
req := utils.CreateGenRequest(set, "Booking.proto", "Vehicle.proto", "nested/Book.proto")
req.Parameter = proto.String("markdown,md,default,separate_files")

plugin := new(Plugin)
resp, err := plugin.Generate(req)
require.NoError(t, err)
require.Len(t, resp.File, 3)
expected := map[string]int{"Booking.md": 1, "Vehicle.md": 1, "Book.md": 1}
require.Contains(t, expected, resp.File[0].GetName())
delete(expected, resp.File[0].GetName())
require.Contains(t, expected, resp.File[1].GetName())
delete(expected, resp.File[1].GetName())
require.Contains(t, expected, resp.File[2].GetName())
delete(expected, resp.File[2].GetName())

require.NotEmpty(t, resp.File[0].GetContent())
require.NotEmpty(t, resp.File[1].GetContent())
require.NotEmpty(t, resp.File[2].GetContent())
}

0 comments on commit bb0c8ee

Please sign in to comment.