Files
gotsrpc/tests/errors/client/client.test.ts
Kevin Franklin Kim 07f2bc6541 test: add shared vo's
2026-03-19 22:15:44 +01:00

77 lines
4.0 KiB
TypeScript

import {expect, test} from "bun:test";
import transport from "../../common/transport"
import {ServiceClient} from "./client.ts";
import {ScalarError, ScalarA} from "./vo.ts";
test("error", async () => {
const client = new ServiceClient(transport(`${process.env.GOTSRPC_SERVER_URL}${ServiceClient.defaultEndpoint}`));
const ret = await client.error();
expect(ret.m).toBe("error");
});
test("scalar", async () => {
const client = new ServiceClient(transport(`${process.env.GOTSRPC_SERVER_URL}${ServiceClient.defaultEndpoint}`));
const ret = await client.scalar();
expect(ret).toBe(ScalarError.ScalarOne);
});
test("multiScalar", async () => {
const client = new ServiceClient(transport(`${process.env.GOTSRPC_SERVER_URL}${ServiceClient.defaultEndpoint}`));
const ret = await client.multiScalar();
expect(JSON.stringify(ret)).toBe('{"ScalarA":"one"}');
});
test("struct", async () => {
const client = new ServiceClient(transport(`${process.env.GOTSRPC_SERVER_URL}${ServiceClient.defaultEndpoint}`));
const ret = await client.struct();
expect(JSON.stringify(ret)).toBe('{"message":"my custom scalar","data":"hello world"}');
});
test("typedError", async () => {
const client = new ServiceClient(transport(`${process.env.GOTSRPC_SERVER_URL}${ServiceClient.defaultEndpoint}`));
const ret = await client.typedError();
expect(JSON.stringify(ret)).toBe('{"m":"typed error","p":"github.com/pkg/errors","t":"*errors.fundamental","d":{}}');
});
test("structError", async () => {
const client = new ServiceClient(transport(`${process.env.GOTSRPC_SERVER_URL}${ServiceClient.defaultEndpoint}`));
const ret = await client.structError();
expect(JSON.stringify(ret)).toBe('{"m":"struct error","p":"github.com/foomo/gotsrpc/v2/tests/errors/server","t":"server.MyStructError","d":{"Msg":"struct error","Map":{"a":"b"},"Slice":["a","b"],"Struct":{"A":"b"}}}');
});
test("scalarError", async () => {
const client = new ServiceClient(transport(`${process.env.GOTSRPC_SERVER_URL}${ServiceClient.defaultEndpoint}`));
const ret = await client.scalarError();
expect(JSON.stringify(ret)).toBe('{"m":"scalar error one","p":"github.com/foomo/gotsrpc/v2/tests/errors/server","t":"*server.MyScalarError","d":"scalar error one"}');
});
test("customError", async () => {
const client = new ServiceClient(transport(`${process.env.GOTSRPC_SERVER_URL}${ServiceClient.defaultEndpoint}`));
const ret = await client.customError();
expect(JSON.stringify(ret)).toBe('{"m":"custom error","p":"github.com/foomo/gotsrpc/v2/tests/errors/server","t":"*server.MyCustomError","d":{"Msg":"custom error","Map":{"a":"b"},"Slice":["a","b"],"Struct":{"A":"b"}}}');
});
test("wrappedError", async () => {
const client = new ServiceClient(transport(`${process.env.GOTSRPC_SERVER_URL}${ServiceClient.defaultEndpoint}`));
const ret = await client.wrappedError();
expect(JSON.stringify(ret)).toBe('{"m":"wrapped","p":"github.com/pkg/errors","t":"*errors.withMessage","d":{},"c":{"m":"error","p":"errors","t":"*errors.errorString","d":{}}}');
});
test("typedError", async () => {
const client = new ServiceClient(transport(`${process.env.GOTSRPC_SERVER_URL}${ServiceClient.defaultEndpoint}`));
const ret = await client.typedError();
expect(JSON.stringify(ret)).toBe('{"m":"typed error","p":"github.com/pkg/errors","t":"*errors.fundamental","d":{}}');
});
test("typedScalarError", async () => {
const client = new ServiceClient(transport(`${process.env.GOTSRPC_SERVER_URL}${ServiceClient.defaultEndpoint}`));
const ret = await client.typedScalarError();
expect(JSON.stringify(ret)).toBe('{"m":"scalar error two","p":"github.com/foomo/gotsrpc/v2/tests/errors/server","t":"*server.MyScalarError","d":"scalar error two"}');
});
test("typedCustomError", async () => {
const client = new ServiceClient(transport(`${process.env.GOTSRPC_SERVER_URL}${ServiceClient.defaultEndpoint}`));
const ret = await client.typedCustomError();
expect(JSON.stringify(ret)).toBe('{"m":"typed custom error","p":"github.com/foomo/gotsrpc/v2/tests/errors/server","t":"*server.MyCustomError","d":{"Msg":"typed custom error","Map":{"a":"b"},"Slice":["a","b"],"Struct":{"A":"b"}}}');
});