diff --git a/internal/processor/script-js_test.go b/internal/processor/script-js_test.go new file mode 100644 index 0000000..8c274a0 --- /dev/null +++ b/internal/processor/script-js_test.go @@ -0,0 +1,48 @@ +package processor_test + +import ( + "testing" + + "github.com/jwetzell/showbridge-go/internal/processor" +) + +func TestGoodScriptJS(t *testing.T) { + tests := []struct { + processor processor.Processor + name string + payload any + expected any + }{ + { + processor: &processor.ScriptJS{Program: ` + payload = payload + 1 + `}, + name: "number", + payload: 1, + expected: 2, + }, + { + processor: &processor.ScriptJS{Program: ` + payload = payload + "1" + `}, + name: "string", + payload: "1", + expected: "11", + }, + } + + for _, test := range tests { + t.Run(test.name, func(t *testing.T) { + got, err := test.processor.Process(t.Context(), test.payload) + + if err != nil { + t.Errorf("script.js failed: %s", err) + } + + //TODO(jwetzell): work out better way to compare the any/any + if got != test.expected { + t.Errorf("script.js got %+v, expected %+v", got, test.expected) + } + }) + } +}