Skip to content

Commit

Permalink
feat: add gRPC test for create discord guild service (#50)
Browse files Browse the repository at this point in the history
add gRPC test for create discord guild service
  • Loading branch information
EiffelFly authored Mar 2, 2023
1 parent 26c7d5a commit 4cdbdf3
Show file tree
Hide file tree
Showing 4 changed files with 79 additions and 7 deletions.
5 changes: 5 additions & 0 deletions .changeset/pretty-readers-add.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
"curioucity": minor
---

Add gRPC test for create discord guild service
10 changes: 4 additions & 6 deletions tests/api/discord.js
Original file line number Diff line number Diff line change
Expand Up @@ -4,10 +4,8 @@ import { API_HOST } from "./rest.js";

export const createDiscordGuild = () => {
group("Disocrd - Should create discord guild", () => {
const guildId = `${Math.floor(Math.random() * 100000000)}`;

const createDiscordGuildPayload = {
guild_id: guildId,
guild_id: `${Math.floor(Math.random() * 100000000)}`,
icon: "icon",
name: "Curioucity",
url: `https://discord.com/id/${Math.floor(Math.random() * 100000000)}`,
Expand Down Expand Up @@ -38,9 +36,9 @@ export const createDiscordGuild = () => {
(r) =>
r.json().discord_guild.guild_id ===
createDiscordGuildPayload.guild_id.toString(),
"createDiscordGuild - POST /discord/guilds/create - response body should have correct content":
"createDiscordGuild - POST /discord/guilds/create - response body should have correct icon":
(r) => r.json().discord_guild.icon === createDiscordGuildPayload.icon,
"createDiscordGuild - POST /discord/guilds/create - response body should have correct markdown content":
"createDiscordGuild - POST /discord/guilds/create - response body should have correct name":
(r) => r.json().discord_guild.name === createDiscordGuildPayload.name,
"createDiscordGuild - POST /discord/guilds/create - response body should have correct url":
(r) =>
Expand All @@ -61,7 +59,7 @@ export const createDiscordGuild = () => {
check(
http.request(
"DELETE",
`${API_HOST}/discord/guilds/${guildId}`,
`${API_HOST}/discord/guilds/${createDiscordGuildPayload.guild_id}`,
undefined,
{ headers }
),
Expand Down
3 changes: 2 additions & 1 deletion tests/api/grpc.js
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
import * as urlServices from "./grpc_url.js";
import * as tagServices from "./grpc_tag.js";
import * as discordServices from "./grpc_discord.js";

export const GRPC_API_HOST = "localhost:8080";

Expand All @@ -10,7 +11,7 @@ const grpc = () => {
// urlServices.listUrl();
// tagServices.createTag();
// tagServices.deleteTag();
tagServices.getTag();
discordServices.createDiscordGuild();
};

export default grpc;
68 changes: 68 additions & 0 deletions tests/api/grpc_discord.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,68 @@
import grpc from "k6/net/grpc";
import { check, group } from "k6";
import { GRPC_API_HOST } from "./grpc.js";

const client = new grpc.Client();

client.load(
["../../packages/curioucity/proto"],
"third_party/v1alpha/discord_service.proto"
);

export const createDiscordGuild = () => {
group("gRPC DiscordService - Should create discord guild", () => {
client.connect(GRPC_API_HOST, { timeout: 2000, plaintext: true });

const createDiscordGuildPayload = {
guild_id: `${Math.floor(Math.random() * 100000000)}`,
icon: "icon",
name: "Curioucity",
url: `https://discord.com/id/${Math.floor(Math.random() * 100000000)}`,
created_timestamp_at_discord: 1675220675,
};

const createDiscordGuildResponse = client.invoke(
"third_party.v1alpha.DiscordService/CreateDiscordGuild",
createDiscordGuildPayload
);

check(createDiscordGuildResponse, {
"CreateDiscordGuild - response status should be StatusOK": (r) =>
r.status === grpc.StatusOK,
"CreateDiscordGuild - response body should have id": (r) =>
typeof r.message.discordGuild.id !== undefined &&
r.message.discordGuild.id !== null,
"CreateDiscordGuild - response body should have correct guild_id": (r) =>
r.message.discordGuild.guildId ===
createDiscordGuildPayload.guild_id.toString(),
"CreateDiscordGuild - response body should have correct icon": (r) =>
r.message.discordGuild.icon === createDiscordGuildPayload.icon,
"CreateDiscordGuild - response body should have correct name": (r) =>
r.message.discordGuild.name === createDiscordGuildPayload.name,
"CreateDiscordGuild - response body should have correct url": (r) =>
r.message.discordGuild.url.url === createDiscordGuildPayload.url,
"CreateDiscordGuild - response body should have correct created_timestamp_at_discord":
(r) =>
Date.parse(r.message.discordGuild.createdTimestampAtDiscord) /
1000 ===
createDiscordGuildPayload.created_timestamp_at_discord,
"CreateDiscordGuild - response body should have created_timestamp_at_curioucity":
(r) =>
typeof r.message.discordGuild.createdTimestampAtDiscord !==
"undefined" &&
r.message.discordGuild.created_timestamp_at_curioucity !== null,
});

const deleteDiscordGuildResponse = client.invoke(
"curioucity.v1alpha.DiscordService/DeleteDiscordGuild",
{
name: createDiscordGuildPayload.guild_id,
}
);

check(deleteDiscordGuildResponse, {
"CreateDiscordGuild - delete test discord guild - response status should be StatusOK":
(r) => r.status === grpc.StatusOK,
});
});
};

0 comments on commit 4cdbdf3

Please sign in to comment.