New endpoints; New tests; Version 0.3.0
This commit is contained in:
parent
4bc3be87b4
commit
1f3a94cf38
27 changed files with 551 additions and 72 deletions
244
tests/2.community.test.js
Normal file
244
tests/2.community.test.js
Normal file
|
|
@ -0,0 +1,244 @@
|
|||
import assert from "node:assert";
|
||||
import { test } from "node:test";
|
||||
import { validate } from "uuid";
|
||||
import { apiGet, apiPost, apiPatch, apiDelete } from "./api.js";
|
||||
|
||||
const state = {};
|
||||
|
||||
test("can create community", async () => {
|
||||
state.communityName = "testCommunity";
|
||||
state.communityDescription = "this is a test community";
|
||||
|
||||
state.username1 = "testuser1";
|
||||
state.password1 = "8556";
|
||||
state.email1 = "testuser1@test.test";
|
||||
state.username2 = "testuser2";
|
||||
state.password2 = "8556";
|
||||
state.email2 = "testuser2@test.test";
|
||||
|
||||
const responseRegister1 = await apiPost(`auth/register`, {
|
||||
username: state.username1,
|
||||
password: state.password1,
|
||||
email: state.email1,
|
||||
});
|
||||
state.userId1 = responseRegister1.id;
|
||||
|
||||
const responseRegister2 = await apiPost(`auth/register`, {
|
||||
username: state.username2,
|
||||
password: state.password2,
|
||||
email: state.email2,
|
||||
});
|
||||
state.userId2 = responseRegister2.id;
|
||||
|
||||
const responseLogin1 = await apiPost(`auth/login`, {
|
||||
username: state.username1,
|
||||
password: state.password1,
|
||||
});
|
||||
state.sessionId1 = responseLogin1.id;
|
||||
state.token1 = responseLogin1.token;
|
||||
|
||||
const responseLogin2 = await apiPost(`auth/login`, {
|
||||
username: state.username2,
|
||||
password: state.password2,
|
||||
});
|
||||
state.sessionId2 = responseLogin2.id;
|
||||
state.token2 = responseLogin2.token;
|
||||
|
||||
const createResponse = await apiPost(
|
||||
`community`,
|
||||
{
|
||||
name: state.communityName,
|
||||
description: state.communityDescription,
|
||||
},
|
||||
state.token1,
|
||||
);
|
||||
state.communityId = createResponse.id;
|
||||
assert.equal(createResponse.name, state.communityName);
|
||||
assert.equal(createResponse.description, state.communityDescription);
|
||||
assert.equal(createResponse.ownerId, state.userId1);
|
||||
|
||||
const getResponse = await apiGet(`community/${state.communityId}`);
|
||||
assert.equal(getResponse.name, state.communityName);
|
||||
assert.equal(getResponse.description, state.communityDescription);
|
||||
assert.equal(getResponse.ownerId, state.userId1);
|
||||
});
|
||||
|
||||
test("shouldn't be able to create invite", async () => {
|
||||
const response = await apiPost(
|
||||
`community/${state.communityId}/invite`,
|
||||
{
|
||||
totalInvites: 1,
|
||||
},
|
||||
state.token2,
|
||||
);
|
||||
|
||||
assert.equal(response.error, "ACCESS_DENIED");
|
||||
});
|
||||
|
||||
test("can create invite", async () => {
|
||||
const response = await apiPost(
|
||||
`community/${state.communityId}/invite`,
|
||||
{
|
||||
totalInvites: 1,
|
||||
},
|
||||
state.token1,
|
||||
);
|
||||
|
||||
assert.equal(response.id, state.communityId);
|
||||
assert.equal(validate(response.inviteId), true);
|
||||
|
||||
state.inviteId = response.inviteId;
|
||||
});
|
||||
|
||||
test("shouldn't be able to accept invite", async () => {
|
||||
const response = await apiGet(
|
||||
`invite/${state.inviteId}/accept`,
|
||||
state.token1,
|
||||
);
|
||||
|
||||
assert.equal(response.error, "ACCESS_DENIED");
|
||||
});
|
||||
|
||||
test("can accept invite", async () => {
|
||||
const response = await apiGet(
|
||||
`invite/${state.inviteId}/accept`,
|
||||
state.token2,
|
||||
);
|
||||
|
||||
assert.equal(response.id, state.inviteId);
|
||||
assert.equal(response.userId, state.userId2);
|
||||
assert.equal(response.userName, state.username2);
|
||||
assert.equal(response.communityId, state.communityId);
|
||||
assert.equal(response.communityName, state.communityName);
|
||||
|
||||
const getResponse = await apiGet(
|
||||
`community/${state.communityId}/members`,
|
||||
state.token1,
|
||||
);
|
||||
|
||||
assert.equal(getResponse.id, state.communityId);
|
||||
assert.equal(getResponse.name, state.communityName);
|
||||
assert.equal(getResponse.members.length === 2, true);
|
||||
});
|
||||
|
||||
test("can get invite", async () => {
|
||||
const response = await apiGet(`invite/${state.inviteId}`);
|
||||
|
||||
assert.equal(response.id, state.inviteId);
|
||||
assert.equal(response.communityId, state.communityId);
|
||||
assert.equal(response.valid, false);
|
||||
assert.equal(response.unlimitedInvites, false);
|
||||
assert.equal(response.hasExpiration, false);
|
||||
assert.equal(response.totalInvites, 1);
|
||||
assert.equal(response.remainingInvites, 0);
|
||||
});
|
||||
|
||||
test("shouldn't be able to get members", async () => {
|
||||
const response = await apiGet(
|
||||
`community/${state.communityId}/members`,
|
||||
state.token2,
|
||||
);
|
||||
|
||||
assert.equal(response.error, "ACCESS_DENIED");
|
||||
});
|
||||
|
||||
test("shouldn't be able to get channels", async () => {
|
||||
const response = await apiGet(
|
||||
`community/${state.communityId}/channels`,
|
||||
state.token2,
|
||||
);
|
||||
|
||||
assert.equal(response.error, "ACCESS_DENIED");
|
||||
});
|
||||
|
||||
test("shouldn't be able to get roles", async () => {
|
||||
const response = await apiGet(
|
||||
`community/${state.communityId}/roles`,
|
||||
state.token2,
|
||||
);
|
||||
|
||||
assert.equal(response.error, "ACCESS_DENIED");
|
||||
});
|
||||
|
||||
test("can create channel", async () => {
|
||||
state.channelName = "Test Channel";
|
||||
|
||||
const response = await apiPost(
|
||||
`channel`,
|
||||
{
|
||||
name: state.channelName,
|
||||
communityId: state.communityId,
|
||||
},
|
||||
state.token1,
|
||||
);
|
||||
|
||||
assert.equal(validate(response.id), true);
|
||||
assert.equal(response.name, state.channelName);
|
||||
assert.equal(response.communityId, state.communityId);
|
||||
|
||||
state.channelId = response.id;
|
||||
});
|
||||
|
||||
test("can create role", async () => {
|
||||
state.roleName = "Test Role";
|
||||
|
||||
const response = await apiPost(
|
||||
`role`,
|
||||
{
|
||||
name: state.roleName,
|
||||
communityId: state.communityId,
|
||||
permissions: ["MEMBERS_READ", "CHANNELS_READ", "ROLES_READ"],
|
||||
},
|
||||
state.token1,
|
||||
);
|
||||
|
||||
assert.equal(validate(response.id), true);
|
||||
assert.equal(response.name, state.roleName);
|
||||
assert.equal(response.communityId, state.communityId);
|
||||
|
||||
state.roleId = response.id;
|
||||
});
|
||||
|
||||
test("can assign role to user", async () => {
|
||||
const response = await apiGet(
|
||||
`community/${state.communityId}/members`,
|
||||
state.token2,
|
||||
);
|
||||
|
||||
assert.equal(response.id, state.communityId);
|
||||
assert.equal(response.name, state.communityName);
|
||||
assert.equal(response.members.length === 2, true);
|
||||
});
|
||||
|
||||
test("can get members", async () => {
|
||||
const response = await apiGet(
|
||||
`community/${state.communityId}/members`,
|
||||
state.token2,
|
||||
);
|
||||
|
||||
assert.equal(response.id, state.communityId);
|
||||
assert.equal(response.name, state.communityName);
|
||||
assert.equal(response.members.length === 2, true);
|
||||
});
|
||||
|
||||
test("can get channels", async () => {
|
||||
const response = await apiGet(
|
||||
`community/${state.communityId}/channels`,
|
||||
state.token2,
|
||||
);
|
||||
|
||||
assert.equal(response.id, state.communityId);
|
||||
assert.equal(response.name, state.communityName);
|
||||
assert.equal(response.channels.length === 1, true);
|
||||
});
|
||||
|
||||
test("can get roles", async () => {
|
||||
const response = await apiGet(
|
||||
`community/${state.communityId}/roles`,
|
||||
state.token2,
|
||||
);
|
||||
|
||||
assert.equal(response.id, state.communityId);
|
||||
assert.equal(response.name, state.communityName);
|
||||
assert.equal(response.roles.length === 1, true);
|
||||
});
|
||||
|
|
@ -1,33 +0,0 @@
|
|||
import assert from "node:assert";
|
||||
import { test } from "node:test";
|
||||
import { validate } from "uuid";
|
||||
import { apiGet, apiPost, apiPatch, apiDelete } from "./api.js";
|
||||
|
||||
const state = {};
|
||||
|
||||
test("can create community", async () => {
|
||||
state.communityName = "testCommunity";
|
||||
|
||||
state.username1 = "testuser1";
|
||||
state.password1 = "8556";
|
||||
state.email1 = "testuser1@test.test";
|
||||
state.username2 = "testuser2";
|
||||
state.password2 = "8556";
|
||||
state.email2 = "testuser2@test.test";
|
||||
|
||||
const response1 = await apiPost(`auth/login`, {
|
||||
username: state.username1,
|
||||
password: state.password1,
|
||||
});
|
||||
state.sessionId1 = response1.id;
|
||||
state.token1 = response1.token;
|
||||
|
||||
const response2 = await apiPost(`auth/login`, {
|
||||
username: state.username2,
|
||||
password: state.password2,
|
||||
});
|
||||
state.sessionId2 = response2.id;
|
||||
state.token2 = response2.token;
|
||||
});
|
||||
|
||||
// TO-DO: Create community test and code
|
||||
Loading…
Add table
Add a link
Reference in a new issue