github.com/stackb/rules_proto@v0.0.0-20240221195024-5428336c51f1/pkg/plugin/builtin/js_common_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 TestJsCommonPlugin(t *testing.T) { 11 plugintest.Cases(t, &builtin.JsCommonPlugin{}, map[string]plugintest.Case{ 12 "empty file": { 13 Input: "", 14 Directives: plugintest.WithDirectives( 15 "proto_plugin", "js implementation builtin:js:common", 16 ), 17 PluginName: "js", 18 Configuration: plugintest.WithConfiguration( 19 plugintest.WithLabel(t, "@build_stack_rules_proto//plugin/builtin:commonjs"), 20 plugintest.WithOutputs("test_pb.js"), 21 plugintest.WithOptions("import_style=commonjs"), 22 ), 23 }, 24 "only services": { 25 Input: "service S{}", 26 Directives: plugintest.WithDirectives( 27 "proto_plugin", "js implementation builtin:js:common", 28 ), 29 PluginName: "js", 30 Configuration: plugintest.WithConfiguration( 31 plugintest.WithLabel(t, "@build_stack_rules_proto//plugin/builtin:commonjs"), 32 plugintest.WithOutputs("test_pb.js"), 33 plugintest.WithOptions("import_style=commonjs"), 34 ), 35 }, 36 "single message & enum": { 37 Input: "message M{}", 38 Directives: plugintest.WithDirectives( 39 "proto_plugin", "js implementation builtin:js:common", 40 ), 41 PluginName: "js", 42 Configuration: plugintest.WithConfiguration( 43 plugintest.WithLabel(t, "@build_stack_rules_proto//plugin/builtin:commonjs"), 44 plugintest.WithOutputs("test_pb.js"), 45 plugintest.WithOptions("import_style=commonjs"), 46 ), 47 }, 48 "with a package": { 49 Input: "package pkg;\n\nmessage M{}", 50 Directives: plugintest.WithDirectives( 51 "proto_plugin", "js implementation builtin:js:common", 52 ), 53 PluginName: "js", 54 Configuration: plugintest.WithConfiguration( 55 plugintest.WithLabel(t, "@build_stack_rules_proto//plugin/builtin:commonjs"), 56 plugintest.WithOutputs("test_pb.js"), 57 plugintest.WithOptions("import_style=commonjs"), 58 ), 59 }, 60 "relative directory": { 61 Rel: "rel", 62 Input: "message M{}", 63 Directives: plugintest.WithDirectives( 64 "proto_plugin", "js implementation builtin:js:common", 65 ), 66 PluginName: "js", 67 Configuration: plugintest.WithConfiguration( 68 plugintest.WithLabel(t, "@build_stack_rules_proto//plugin/builtin:commonjs"), 69 plugintest.WithOutputs("rel/test_pb.js"), 70 plugintest.WithOptions("import_style=commonjs"), 71 ), 72 }, 73 }) 74 }