github.com/stackb/rules_proto@v0.0.0-20240221195024-5428336c51f1/pkg/plugin/builtin/ruby_plugin_test.go (about) 1 package builtin_test 2 3 import ( 4 "testing" 5 6 "github.com/stackb/rules_proto/pkg/plugin/builtin" 7 "github.com/stackb/rules_proto/pkg/plugintest" 8 ) 9 10 func TestRubyPlugin(t *testing.T) { 11 plugintest.Cases(t, &builtin.RubyPlugin{}, map[string]plugintest.Case{ 12 "empty file": { 13 Input: "", 14 Directives: plugintest.WithDirectives( 15 "proto_plugin", "ruby implementation builtin:ruby", 16 ), 17 PluginName: "ruby", 18 Configuration: plugintest.WithConfiguration( 19 plugintest.WithLabel(t, "@build_stack_rules_proto//plugin/builtin:ruby"), 20 plugintest.WithOutputs("test_pb.rb"), 21 ), 22 }, 23 "only services": { 24 Input: "service S{}", 25 Directives: plugintest.WithDirectives( 26 "proto_plugin", "ruby implementation builtin:ruby", 27 ), 28 PluginName: "ruby", 29 Configuration: plugintest.WithConfiguration( 30 plugintest.WithLabel(t, "@build_stack_rules_proto//plugin/builtin:ruby"), 31 plugintest.WithOutputs("test_pb.rb"), 32 ), 33 }, 34 "with a package": { 35 Input: "package pkg;\n\nmessage M{}", 36 Directives: plugintest.WithDirectives( 37 "proto_plugin", "ruby implementation builtin:ruby", 38 ), 39 PluginName: "ruby", 40 Configuration: plugintest.WithConfiguration( 41 plugintest.WithLabel(t, "@build_stack_rules_proto//plugin/builtin:ruby"), 42 plugintest.WithOutputs("test_pb.rb"), 43 ), 44 }, 45 "relative directory": { 46 Rel: "rel", 47 Input: "message M{}", 48 Directives: plugintest.WithDirectives( 49 "proto_plugin", "ruby implementation builtin:ruby", 50 ), 51 PluginName: "ruby", 52 Configuration: plugintest.WithConfiguration( 53 plugintest.WithLabel(t, "@build_stack_rules_proto//plugin/builtin:ruby"), 54 plugintest.WithOutputs("rel/test_pb.rb"), 55 ), 56 }, 57 }) 58 }