github.com/stackb/rules_proto@v0.0.0-20240221195024-5428336c51f1/pkg/plugin/builtin/pyi_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 TestPyiPlugin(t *testing.T) { 11 plugintest.Cases(t, &builtin.PyiPlugin{}, map[string]plugintest.Case{ 12 "empty file": { 13 Input: "", 14 Directives: plugintest.WithDirectives( 15 "proto_plugin", "pyi implementation builtin:pyi", 16 ), 17 PluginName: "pyi", 18 Configuration: plugintest.WithConfiguration( 19 plugintest.WithLabel(t, "@build_stack_rules_proto//plugin/builtin:pyi"), 20 plugintest.WithOutputs("test_pb2.pyi"), 21 ), 22 }, 23 "only services": { 24 Input: "service S{}", 25 Directives: plugintest.WithDirectives( 26 "proto_plugin", "pyi implementation builtin:pyi", 27 ), 28 PluginName: "pyi", 29 Configuration: plugintest.WithConfiguration( 30 plugintest.WithLabel(t, "@build_stack_rules_proto//plugin/builtin:pyi"), 31 plugintest.WithOutputs("test_pb2.pyi"), 32 ), 33 }, 34 "with a package": { 35 Input: "package pkg;\n\nmessage M{}", 36 Directives: plugintest.WithDirectives( 37 "proto_plugin", "pyi implementation builtin:pyi", 38 ), 39 PluginName: "pyi", 40 Configuration: plugintest.WithConfiguration( 41 plugintest.WithLabel(t, "@build_stack_rules_proto//plugin/builtin:pyi"), 42 plugintest.WithOutputs("test_pb2.pyi"), 43 ), 44 }, 45 "relative directory": { 46 Rel: "rel", 47 Input: "package a;\n\nmessage M{}", 48 Directives: plugintest.WithDirectives( 49 "proto_plugin", "pyi implementation builtin:pyi", 50 ), 51 PluginName: "pyi", 52 Configuration: plugintest.WithConfiguration( 53 plugintest.WithLabel(t, "@build_stack_rules_proto//plugin/builtin:pyi"), 54 plugintest.WithOutputs("rel/test_pb2.pyi"), 55 ), 56 }, 57 "basename replacement": { 58 Basename: "a-b*c+d=e|g!h#i", 59 Input: "message M{}", 60 Directives: plugintest.WithDirectives( 61 "proto_plugin", "pyi implementation builtin:pyi", 62 ), 63 PluginName: "pyi", 64 Configuration: plugintest.WithConfiguration( 65 plugintest.WithLabel(t, "@build_stack_rules_proto//plugin/builtin:pyi"), 66 plugintest.WithOutputs("a_b*c+d=e|g!h#i_pb2.pyi"), 67 ), 68 }, 69 }) 70 }