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  }