blob: 36fecfdbc3ebc8b112ee3ed694749f9be25d5c5a [file] [log] [blame]
// Copyright 2015 The Vanadium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file.
package javascript
import (
"testing"
"v.io/v23/i18n"
"v.io/v23/vdl"
"v.io/x/ref/lib/vdl/compile"
)
func TestError(t *testing.T) {
e := &compile.ErrorDef{
NamePos: compile.NamePos{
Name: "Test",
},
ID: "v.io/x/ref/lib/vdl/codegen/javascript.Test",
RetryCode: vdl.WireRetryCodeNoRetry,
Params: []*compile.Field{
&compile.Field{
NamePos: compile.NamePos{
Name: "x",
},
Type: vdl.BoolType,
},
&compile.Field{
NamePos: compile.NamePos{
Name: "y",
},
Type: vdl.Int32Type,
},
},
Formats: []compile.LangFmt{
compile.LangFmt{
Lang: i18n.LangID("en-US"),
Fmt: "english string",
},
compile.LangFmt{
Lang: i18n.LangID("fr"),
Fmt: "french string",
},
},
}
var names typeNames
result := generateErrorConstructor(names, e)
expected := `module.exports.TestError = makeError('v.io/x/ref/lib/vdl/codegen/javascript.Test', actions.NO_RETRY, {
'en-US': 'english string',
'fr': 'french string',
}, [
vdl.types.BOOL,
vdl.types.INT32,
]);
`
if result != expected {
t.Errorf("got %s, expected %s", result, expected)
}
}