45 lines
987 B
Go
45 lines
987 B
Go
package packagejson_test
|
|
|
|
import (
|
|
"testing"
|
|
|
|
"efprojects.com/kitten-ipc/kitcom/internal/tsgo/packagejson"
|
|
"github.com/go-json-experiment/json"
|
|
"gotest.tools/v3/assert"
|
|
)
|
|
|
|
func TestExpected(t *testing.T) {
|
|
t.Parallel()
|
|
|
|
type packageJson struct {
|
|
Name packagejson.Expected[string] `json:"name"`
|
|
Version packagejson.Expected[string] `json:"version"`
|
|
Exports packagejson.Expected[any] `json:"exports"`
|
|
Main packagejson.Expected[string] `json:"main"`
|
|
}
|
|
|
|
var p packageJson
|
|
|
|
jsonString := `{
|
|
"name": "test",
|
|
"version": 2,
|
|
"exports": null
|
|
}`
|
|
|
|
err := json.Unmarshal([]byte(jsonString), &p)
|
|
assert.NilError(t, err)
|
|
|
|
assert.Equal(t, p.Name.Valid, true)
|
|
assert.Equal(t, p.Name.Value, "test")
|
|
|
|
assert.Equal(t, p.Version.Valid, false)
|
|
assert.Equal(t, p.Version.Value, "")
|
|
|
|
assert.Assert(t, p.Exports.Null)
|
|
assert.Equal(t, p.Exports.Valid, false)
|
|
|
|
assert.Equal(t, p.Main.Valid, false)
|
|
assert.Equal(t, p.Main.Null, false)
|
|
assert.Equal(t, p.Main.Value, "")
|
|
}
|