mirror of
https://github.com/foomo/gotsrpc.git
synced 2026-04-29 09:04:34 +00:00
77 lines
4.0 KiB
TypeScript
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"}}}');
|
|
});
|