mirror of
https://github.com/outline/outline.git
synced 2026-06-13 11:25:03 +03:00
chore: getJWTToken -> getSessionToken (#12371)
* getJWTToken -> getSessionToken Ensure expiry is included in payload * Refactor test harness to avoid direct usage of getSessionToken
This commit is contained in:
@@ -13,7 +13,7 @@ describe("#figma.callback", () => {
|
|||||||
const res = await server.get(
|
const res = await server.get(
|
||||||
`/api/figma.callback?state=${encodeURIComponent(
|
`/api/figma.callback?state=${encodeURIComponent(
|
||||||
state
|
state
|
||||||
)}&code=123&token=${user.getJwtToken()}`,
|
)}&code=123&token=${user.getSessionToken()}`,
|
||||||
{ redirect: "manual" }
|
{ redirect: "manual" }
|
||||||
);
|
);
|
||||||
const body = await res.json();
|
const body = await res.json();
|
||||||
@@ -27,7 +27,7 @@ describe("#figma.callback", () => {
|
|||||||
const res = await server.get(
|
const res = await server.get(
|
||||||
`/api/figma.callback?state=${encodeURIComponent(
|
`/api/figma.callback?state=${encodeURIComponent(
|
||||||
state
|
state
|
||||||
)}&code=123&token=${user.getJwtToken()}`,
|
)}&code=123&token=${user.getSessionToken()}`,
|
||||||
{ redirect: "manual" }
|
{ redirect: "manual" }
|
||||||
);
|
);
|
||||||
expect(res.status).toEqual(400);
|
expect(res.status).toEqual(400);
|
||||||
@@ -36,7 +36,7 @@ describe("#figma.callback", () => {
|
|||||||
it("should fail when state is not valid JSON", async () => {
|
it("should fail when state is not valid JSON", async () => {
|
||||||
const user = await buildUser();
|
const user = await buildUser();
|
||||||
const res = await server.get(
|
const res = await server.get(
|
||||||
`/api/figma.callback?state=bad&code=123&token=${user.getJwtToken()}`,
|
`/api/figma.callback?state=bad&code=123&token=${user.getSessionToken()}`,
|
||||||
{ redirect: "manual" }
|
{ redirect: "manual" }
|
||||||
);
|
);
|
||||||
expect(res.status).toEqual(400);
|
expect(res.status).toEqual(400);
|
||||||
|
|||||||
@@ -14,7 +14,7 @@ describe("#github.callback", () => {
|
|||||||
const res = await server.get(
|
const res = await server.get(
|
||||||
`/api/github.callback?state=${encodeURIComponent(
|
`/api/github.callback?state=${encodeURIComponent(
|
||||||
state
|
state
|
||||||
)}&code=123&setup_action=${SetupAction.install}&installation_id=1&token=${user.getJwtToken()}`,
|
)}&code=123&setup_action=${SetupAction.install}&installation_id=1&token=${user.getSessionToken()}`,
|
||||||
{ redirect: "manual" }
|
{ redirect: "manual" }
|
||||||
);
|
);
|
||||||
const body = await res.json();
|
const body = await res.json();
|
||||||
@@ -28,7 +28,7 @@ describe("#github.callback", () => {
|
|||||||
const res = await server.get(
|
const res = await server.get(
|
||||||
`/api/github.callback?state=${encodeURIComponent(
|
`/api/github.callback?state=${encodeURIComponent(
|
||||||
state
|
state
|
||||||
)}&code=123&setup_action=${SetupAction.install}&installation_id=1&token=${user.getJwtToken()}`,
|
)}&code=123&setup_action=${SetupAction.install}&installation_id=1&token=${user.getSessionToken()}`,
|
||||||
{ redirect: "manual" }
|
{ redirect: "manual" }
|
||||||
);
|
);
|
||||||
expect(res.status).toEqual(400);
|
expect(res.status).toEqual(400);
|
||||||
@@ -37,7 +37,7 @@ describe("#github.callback", () => {
|
|||||||
it("should fail when state is not valid JSON", async () => {
|
it("should fail when state is not valid JSON", async () => {
|
||||||
const user = await buildUser();
|
const user = await buildUser();
|
||||||
const res = await server.get(
|
const res = await server.get(
|
||||||
`/api/github.callback?state=bad&code=123&setup_action=${SetupAction.install}&installation_id=1&token=${user.getJwtToken()}`,
|
`/api/github.callback?state=bad&code=123&setup_action=${SetupAction.install}&installation_id=1&token=${user.getSessionToken()}`,
|
||||||
{ redirect: "manual" }
|
{ redirect: "manual" }
|
||||||
);
|
);
|
||||||
expect(res.status).toEqual(400);
|
expect(res.status).toEqual(400);
|
||||||
|
|||||||
@@ -13,7 +13,7 @@ describe("#gitlab.callback", () => {
|
|||||||
const res = await server.get(
|
const res = await server.get(
|
||||||
`/api/gitlab.callback?state=${encodeURIComponent(
|
`/api/gitlab.callback?state=${encodeURIComponent(
|
||||||
state
|
state
|
||||||
)}&code=123&token=${user.getJwtToken()}`,
|
)}&code=123&token=${user.getSessionToken()}`,
|
||||||
{ redirect: "manual" }
|
{ redirect: "manual" }
|
||||||
);
|
);
|
||||||
const body = await res.json();
|
const body = await res.json();
|
||||||
@@ -27,7 +27,7 @@ describe("#gitlab.callback", () => {
|
|||||||
const res = await server.get(
|
const res = await server.get(
|
||||||
`/api/gitlab.callback?state=${encodeURIComponent(
|
`/api/gitlab.callback?state=${encodeURIComponent(
|
||||||
state
|
state
|
||||||
)}&code=123&token=${user.getJwtToken()}`,
|
)}&code=123&token=${user.getSessionToken()}`,
|
||||||
{ redirect: "manual" }
|
{ redirect: "manual" }
|
||||||
);
|
);
|
||||||
expect(res.status).toEqual(400);
|
expect(res.status).toEqual(400);
|
||||||
@@ -36,7 +36,7 @@ describe("#gitlab.callback", () => {
|
|||||||
it("should fail when state is not valid JSON", async () => {
|
it("should fail when state is not valid JSON", async () => {
|
||||||
const user = await buildUser();
|
const user = await buildUser();
|
||||||
const res = await server.get(
|
const res = await server.get(
|
||||||
`/api/gitlab.callback?state=bad&code=123&token=${user.getJwtToken()}`,
|
`/api/gitlab.callback?state=bad&code=123&token=${user.getSessionToken()}`,
|
||||||
{ redirect: "manual" }
|
{ redirect: "manual" }
|
||||||
);
|
);
|
||||||
expect(res.status).toEqual(400);
|
expect(res.status).toEqual(400);
|
||||||
|
|||||||
@@ -13,7 +13,7 @@ describe("#linear.callback", () => {
|
|||||||
const res = await server.get(
|
const res = await server.get(
|
||||||
`/api/linear.callback?state=${encodeURIComponent(
|
`/api/linear.callback?state=${encodeURIComponent(
|
||||||
state
|
state
|
||||||
)}&code=123&token=${user.getJwtToken()}`,
|
)}&code=123&token=${user.getSessionToken()}`,
|
||||||
{ redirect: "manual" }
|
{ redirect: "manual" }
|
||||||
);
|
);
|
||||||
const body = await res.json();
|
const body = await res.json();
|
||||||
@@ -27,7 +27,7 @@ describe("#linear.callback", () => {
|
|||||||
const res = await server.get(
|
const res = await server.get(
|
||||||
`/api/linear.callback?state=${encodeURIComponent(
|
`/api/linear.callback?state=${encodeURIComponent(
|
||||||
state
|
state
|
||||||
)}&code=123&token=${user.getJwtToken()}`,
|
)}&code=123&token=${user.getSessionToken()}`,
|
||||||
{ redirect: "manual" }
|
{ redirect: "manual" }
|
||||||
);
|
);
|
||||||
expect(res.status).toEqual(400);
|
expect(res.status).toEqual(400);
|
||||||
@@ -36,7 +36,7 @@ describe("#linear.callback", () => {
|
|||||||
it("should fail when state is not valid JSON", async () => {
|
it("should fail when state is not valid JSON", async () => {
|
||||||
const user = await buildUser();
|
const user = await buildUser();
|
||||||
const res = await server.get(
|
const res = await server.get(
|
||||||
`/api/linear.callback?state=bad&code=123&token=${user.getJwtToken()}`,
|
`/api/linear.callback?state=bad&code=123&token=${user.getSessionToken()}`,
|
||||||
{ redirect: "manual" }
|
{ redirect: "manual" }
|
||||||
);
|
);
|
||||||
expect(res.status).toEqual(400);
|
expect(res.status).toEqual(400);
|
||||||
|
|||||||
@@ -13,7 +13,7 @@ describe("#notion.callback", () => {
|
|||||||
const res = await server.get(
|
const res = await server.get(
|
||||||
`/api/notion.callback?state=${encodeURIComponent(
|
`/api/notion.callback?state=${encodeURIComponent(
|
||||||
state
|
state
|
||||||
)}&code=123&token=${user.getJwtToken()}`,
|
)}&code=123&token=${user.getSessionToken()}`,
|
||||||
{ redirect: "manual" }
|
{ redirect: "manual" }
|
||||||
);
|
);
|
||||||
const body = await res.json();
|
const body = await res.json();
|
||||||
@@ -27,7 +27,7 @@ describe("#notion.callback", () => {
|
|||||||
const res = await server.get(
|
const res = await server.get(
|
||||||
`/api/notion.callback?state=${encodeURIComponent(
|
`/api/notion.callback?state=${encodeURIComponent(
|
||||||
state
|
state
|
||||||
)}&code=123&token=${user.getJwtToken()}`,
|
)}&code=123&token=${user.getSessionToken()}`,
|
||||||
{ redirect: "manual" }
|
{ redirect: "manual" }
|
||||||
);
|
);
|
||||||
expect(res.status).toEqual(400);
|
expect(res.status).toEqual(400);
|
||||||
@@ -36,7 +36,7 @@ describe("#notion.callback", () => {
|
|||||||
it("should fail when state is not valid JSON", async () => {
|
it("should fail when state is not valid JSON", async () => {
|
||||||
const user = await buildUser();
|
const user = await buildUser();
|
||||||
const res = await server.get(
|
const res = await server.get(
|
||||||
`/api/notion.callback?state=bad&code=123&token=${user.getJwtToken()}`,
|
`/api/notion.callback?state=bad&code=123&token=${user.getSessionToken()}`,
|
||||||
{ redirect: "manual" }
|
{ redirect: "manual" }
|
||||||
);
|
);
|
||||||
expect(res.status).toEqual(400);
|
expect(res.status).toEqual(400);
|
||||||
|
|||||||
@@ -11,7 +11,7 @@ describe("#slack.post", () => {
|
|||||||
const res = await server.get(
|
const res = await server.get(
|
||||||
`/auth/slack.post?state=${JSON.stringify(
|
`/auth/slack.post?state=${JSON.stringify(
|
||||||
{}
|
{}
|
||||||
)}&code=123&token=${user.getJwtToken()}`
|
)}&code=123&token=${user.getSessionToken()}`
|
||||||
);
|
);
|
||||||
expect(res.status).toEqual(400);
|
expect(res.status).toEqual(400);
|
||||||
});
|
});
|
||||||
@@ -19,7 +19,7 @@ describe("#slack.post", () => {
|
|||||||
it("should fail with status 400 bad request if query param state is not JSON", async () => {
|
it("should fail with status 400 bad request if query param state is not JSON", async () => {
|
||||||
const user = await buildUser();
|
const user = await buildUser();
|
||||||
const res = await server.get(
|
const res = await server.get(
|
||||||
`/auth/slack.post?state=bad&code=123&token=${user.getJwtToken()}`
|
`/auth/slack.post?state=bad&code=123&token=${user.getSessionToken()}`
|
||||||
);
|
);
|
||||||
expect(res.status).toEqual(400);
|
expect(res.status).toEqual(400);
|
||||||
});
|
});
|
||||||
@@ -43,7 +43,7 @@ describe("#slack.post", () => {
|
|||||||
const res = await server.get(
|
const res = await server.get(
|
||||||
`/auth/slack.post?state=${encodeURIComponent(
|
`/auth/slack.post?state=${encodeURIComponent(
|
||||||
state
|
state
|
||||||
)}&code=123&token=${user.getJwtToken()}`,
|
)}&code=123&token=${user.getSessionToken()}`,
|
||||||
{ redirect: "manual" }
|
{ redirect: "manual" }
|
||||||
);
|
);
|
||||||
const body = await res.json();
|
const body = await res.json();
|
||||||
@@ -60,7 +60,7 @@ describe("#slack.post", () => {
|
|||||||
const res = await server.get(
|
const res = await server.get(
|
||||||
`/auth/slack.post?state=${encodeURIComponent(
|
`/auth/slack.post?state=${encodeURIComponent(
|
||||||
state
|
state
|
||||||
)}&code=123&token=${user.getJwtToken()}`,
|
)}&code=123&token=${user.getSessionToken()}`,
|
||||||
{ redirect: "manual" }
|
{ redirect: "manual" }
|
||||||
);
|
);
|
||||||
expect(res.status).toEqual(400);
|
expect(res.status).toEqual(400);
|
||||||
|
|||||||
@@ -25,9 +25,8 @@ vi.setConfig({ testTimeout: 10000 });
|
|||||||
describe("#files.create", () => {
|
describe("#files.create", () => {
|
||||||
it("should fail with status 400 bad request if key is invalid", async () => {
|
it("should fail with status 400 bad request if key is invalid", async () => {
|
||||||
const user = await buildUser();
|
const user = await buildUser();
|
||||||
const res = await server.post("/api/files.create", {
|
const res = await server.post("/api/files.create", user, {
|
||||||
body: {
|
body: {
|
||||||
token: user.getJwtToken(),
|
|
||||||
key: "public/foo/bar/baz.png",
|
key: "public/foo/bar/baz.png",
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
@@ -52,7 +51,7 @@ describe("#files.create", () => {
|
|||||||
const form = new FormData();
|
const form = new FormData();
|
||||||
form.append("key", attachment.key);
|
form.append("key", attachment.key);
|
||||||
form.append("file", content, fileName);
|
form.append("file", content, fileName);
|
||||||
form.append("token", user.getJwtToken());
|
form.append("token", user.getSessionToken());
|
||||||
|
|
||||||
const res = await server.post(`/api/files.create`, {
|
const res = await server.post(`/api/files.create`, {
|
||||||
headers: form.getHeaders(),
|
headers: form.getHeaders(),
|
||||||
@@ -89,7 +88,7 @@ describe("#files.create", () => {
|
|||||||
const form = new FormData();
|
const form = new FormData();
|
||||||
form.append("key", attachment.key);
|
form.append("key", attachment.key);
|
||||||
form.append("file", content, fileName);
|
form.append("file", content, fileName);
|
||||||
form.append("token", user.getJwtToken());
|
form.append("token", user.getSessionToken());
|
||||||
|
|
||||||
const res = await server.post(`/api/files.create`, {
|
const res = await server.post(`/api/files.create`, {
|
||||||
headers: form.getHeaders(),
|
headers: form.getHeaders(),
|
||||||
@@ -118,7 +117,7 @@ describe("#files.create", () => {
|
|||||||
const form = new FormData();
|
const form = new FormData();
|
||||||
form.append("key", attachment.key);
|
form.append("key", attachment.key);
|
||||||
form.append("file", content, fileName);
|
form.append("file", content, fileName);
|
||||||
form.append("token", user.getJwtToken());
|
form.append("token", user.getSessionToken());
|
||||||
|
|
||||||
const res = await server.post(`/api/files.create`, {
|
const res = await server.post(`/api/files.create`, {
|
||||||
headers: form.getHeaders(),
|
headers: form.getHeaders(),
|
||||||
@@ -150,7 +149,7 @@ describe("#files.create", () => {
|
|||||||
const form = new FormData();
|
const form = new FormData();
|
||||||
form.append("key", attachment.key);
|
form.append("key", attachment.key);
|
||||||
form.append("file", content, fileName);
|
form.append("file", content, fileName);
|
||||||
form.append("token", user.getJwtToken());
|
form.append("token", user.getSessionToken());
|
||||||
|
|
||||||
const res = await server.post(`/api/files.create`, {
|
const res = await server.post(`/api/files.create`, {
|
||||||
headers: form.getHeaders(),
|
headers: form.getHeaders(),
|
||||||
@@ -181,7 +180,7 @@ describe("#files.create", () => {
|
|||||||
const form = new FormData();
|
const form = new FormData();
|
||||||
form.append("key", attachment.key);
|
form.append("key", attachment.key);
|
||||||
form.append("file", content, fileName);
|
form.append("file", content, fileName);
|
||||||
form.append("token", user.getJwtToken());
|
form.append("token", user.getSessionToken());
|
||||||
|
|
||||||
const res = await server.post(`/api/files.create`, {
|
const res = await server.post(`/api/files.create`, {
|
||||||
headers: form.getHeaders(),
|
headers: form.getHeaders(),
|
||||||
@@ -262,7 +261,7 @@ describe("#files.get", () => {
|
|||||||
const form = new FormData();
|
const form = new FormData();
|
||||||
form.append("key", attachment.key);
|
form.append("key", attachment.key);
|
||||||
form.append("file", content, fileName);
|
form.append("file", content, fileName);
|
||||||
form.append("token", user.getJwtToken());
|
form.append("token", user.getSessionToken());
|
||||||
|
|
||||||
await server.post(`/api/files.create`, {
|
await server.post(`/api/files.create`, {
|
||||||
headers: form.getHeaders(),
|
headers: form.getHeaders(),
|
||||||
@@ -298,7 +297,7 @@ describe("#files.get", () => {
|
|||||||
const form = new FormData();
|
const form = new FormData();
|
||||||
form.append("key", attachment.key);
|
form.append("key", attachment.key);
|
||||||
form.append("file", content, fileName);
|
form.append("file", content, fileName);
|
||||||
form.append("token", user.getJwtToken());
|
form.append("token", user.getSessionToken());
|
||||||
|
|
||||||
await server.post(`/api/files.create`, {
|
await server.post(`/api/files.create`, {
|
||||||
headers: form.getHeaders(),
|
headers: form.getHeaders(),
|
||||||
@@ -432,7 +431,7 @@ describe("#files.get", () => {
|
|||||||
// Non-owner user should be able to access public-read attachment
|
// Non-owner user should be able to access public-read attachment
|
||||||
const res = await server.get(`/api/files.get?key=${key}`, {
|
const res = await server.get(`/api/files.get?key=${key}`, {
|
||||||
headers: {
|
headers: {
|
||||||
Authorization: `Bearer ${otherUser.getJwtToken()}`,
|
Authorization: `Bearer ${otherUser.getSessionToken()}`,
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
expect(res.status).toEqual(200);
|
expect(res.status).toEqual(200);
|
||||||
@@ -467,7 +466,7 @@ describe("#files.get", () => {
|
|||||||
// Non-owner user should NOT be able to access private attachment
|
// Non-owner user should NOT be able to access private attachment
|
||||||
const res = await server.get(`/api/files.get?key=${key}`, {
|
const res = await server.get(`/api/files.get?key=${key}`, {
|
||||||
headers: {
|
headers: {
|
||||||
Authorization: `Bearer ${otherUser.getJwtToken()}`,
|
Authorization: `Bearer ${otherUser.getSessionToken()}`,
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
expect(res.status).toEqual(403);
|
expect(res.status).toEqual(403);
|
||||||
|
|||||||
@@ -21,9 +21,7 @@ describe("#webhookSubscriptions.list", () => {
|
|||||||
it("should fail with status 403 forbidden for non-admin user", async () => {
|
it("should fail with status 403 forbidden for non-admin user", async () => {
|
||||||
const user = await buildUser();
|
const user = await buildUser();
|
||||||
|
|
||||||
const res = await server.post("/api/webhookSubscriptions.list", {
|
const res = await server.post("/api/webhookSubscriptions.list", user);
|
||||||
body: { token: user.getJwtToken() },
|
|
||||||
});
|
|
||||||
const body = await res.json();
|
const body = await res.json();
|
||||||
|
|
||||||
expect(res.status).toEqual(403);
|
expect(res.status).toEqual(403);
|
||||||
@@ -43,9 +41,7 @@ describe("#webhookSubscriptions.list", () => {
|
|||||||
)
|
)
|
||||||
);
|
);
|
||||||
|
|
||||||
const res = await server.post("/api/webhookSubscriptions.list", {
|
const res = await server.post("/api/webhookSubscriptions.list", user);
|
||||||
body: { token: user.getJwtToken() },
|
|
||||||
});
|
|
||||||
const body = await res.json();
|
const body = await res.json();
|
||||||
|
|
||||||
expect(res.status).toEqual(200);
|
expect(res.status).toEqual(200);
|
||||||
@@ -70,8 +66,8 @@ describe("#webhookSubscriptions.list", () => {
|
|||||||
name: "Development Hook",
|
name: "Development Hook",
|
||||||
});
|
});
|
||||||
|
|
||||||
const res = await server.post("/api/webhookSubscriptions.list", {
|
const res = await server.post("/api/webhookSubscriptions.list", user, {
|
||||||
body: { token: user.getJwtToken(), query: "webhook" },
|
body: { query: "webhook" },
|
||||||
});
|
});
|
||||||
const body = await res.json();
|
const body = await res.json();
|
||||||
|
|
||||||
@@ -97,8 +93,8 @@ describe("#webhookSubscriptions.list", () => {
|
|||||||
name: "Staging Webhook",
|
name: "Staging Webhook",
|
||||||
});
|
});
|
||||||
|
|
||||||
const res = await server.post("/api/webhookSubscriptions.list", {
|
const res = await server.post("/api/webhookSubscriptions.list", user, {
|
||||||
body: { token: user.getJwtToken(), query: "PRODUCTION" },
|
body: { query: "PRODUCTION" },
|
||||||
});
|
});
|
||||||
const body = await res.json();
|
const body = await res.json();
|
||||||
|
|
||||||
@@ -115,8 +111,8 @@ describe("#webhookSubscriptions.list", () => {
|
|||||||
name: "Production Webhook",
|
name: "Production Webhook",
|
||||||
});
|
});
|
||||||
|
|
||||||
const res = await server.post("/api/webhookSubscriptions.list", {
|
const res = await server.post("/api/webhookSubscriptions.list", user, {
|
||||||
body: { token: user.getJwtToken(), query: "nonexistent" },
|
body: { query: "nonexistent" },
|
||||||
});
|
});
|
||||||
const body = await res.json();
|
const body = await res.json();
|
||||||
|
|
||||||
@@ -139,9 +135,7 @@ describe("#webhookSubscriptions.create", () => {
|
|||||||
it("should fail with status 403 forbidden for non-admin user", async () => {
|
it("should fail with status 403 forbidden for non-admin user", async () => {
|
||||||
const user = await buildUser();
|
const user = await buildUser();
|
||||||
|
|
||||||
const res = await server.post("/api/webhookSubscriptions.create", {
|
const res = await server.post("/api/webhookSubscriptions.create", user);
|
||||||
body: { token: user.getJwtToken() },
|
|
||||||
});
|
|
||||||
const body = await res.json();
|
const body = await res.json();
|
||||||
|
|
||||||
expect(res.status).toEqual(403);
|
expect(res.status).toEqual(403);
|
||||||
@@ -155,9 +149,8 @@ describe("#webhookSubscriptions.create", () => {
|
|||||||
const events = ["comments"];
|
const events = ["comments"];
|
||||||
const secret = "Test secret";
|
const secret = "Test secret";
|
||||||
|
|
||||||
const res = await server.post("/api/webhookSubscriptions.create", {
|
const res = await server.post("/api/webhookSubscriptions.create", user, {
|
||||||
body: {
|
body: {
|
||||||
token: user.getJwtToken(),
|
|
||||||
name,
|
name,
|
||||||
url,
|
url,
|
||||||
events,
|
events,
|
||||||
@@ -190,9 +183,7 @@ describe("#webhookSubscriptions.update", () => {
|
|||||||
it("should fail with status 403 forbidden for non-admin user", async () => {
|
it("should fail with status 403 forbidden for non-admin user", async () => {
|
||||||
const user = await buildUser();
|
const user = await buildUser();
|
||||||
|
|
||||||
const res = await server.post("/api/webhookSubscriptions.update", {
|
const res = await server.post("/api/webhookSubscriptions.update", user);
|
||||||
body: { token: user.getJwtToken() },
|
|
||||||
});
|
|
||||||
const body = await res.json();
|
const body = await res.json();
|
||||||
|
|
||||||
expect(res.status).toEqual(403);
|
expect(res.status).toEqual(403);
|
||||||
@@ -213,9 +204,8 @@ describe("#webhookSubscriptions.update", () => {
|
|||||||
teamId: user.teamId,
|
teamId: user.teamId,
|
||||||
});
|
});
|
||||||
|
|
||||||
const res = await server.post("/api/webhookSubscriptions.update", {
|
const res = await server.post("/api/webhookSubscriptions.update", user, {
|
||||||
body: {
|
body: {
|
||||||
token: user.getJwtToken(),
|
|
||||||
id: existingWebhook.id,
|
id: existingWebhook.id,
|
||||||
name,
|
name,
|
||||||
url,
|
url,
|
||||||
@@ -247,9 +237,8 @@ describe("#webhookSubscriptions.update", () => {
|
|||||||
enabled: false,
|
enabled: false,
|
||||||
});
|
});
|
||||||
|
|
||||||
const res = await server.post("/api/webhookSubscriptions.update", {
|
const res = await server.post("/api/webhookSubscriptions.update", user, {
|
||||||
body: {
|
body: {
|
||||||
token: user.getJwtToken(),
|
|
||||||
id: disabledWebhook.id,
|
id: disabledWebhook.id,
|
||||||
name,
|
name,
|
||||||
url,
|
url,
|
||||||
@@ -281,9 +270,7 @@ describe("#webhookSubscriptions.delete", () => {
|
|||||||
it("should fail with status 403 forbidden for non-admin user", async () => {
|
it("should fail with status 403 forbidden for non-admin user", async () => {
|
||||||
const user = await buildUser();
|
const user = await buildUser();
|
||||||
|
|
||||||
const res = await server.post("/api/webhookSubscriptions.delete", {
|
const res = await server.post("/api/webhookSubscriptions.delete", user);
|
||||||
body: { token: user.getJwtToken() },
|
|
||||||
});
|
|
||||||
const body = await res.json();
|
const body = await res.json();
|
||||||
|
|
||||||
expect(res.status).toEqual(403);
|
expect(res.status).toEqual(403);
|
||||||
@@ -300,8 +287,8 @@ describe("#webhookSubscriptions.delete", () => {
|
|||||||
teamId: user.teamId,
|
teamId: user.teamId,
|
||||||
});
|
});
|
||||||
|
|
||||||
const res = await server.post("/api/webhookSubscriptions.delete", {
|
const res = await server.post("/api/webhookSubscriptions.delete", user, {
|
||||||
body: { token: user.getJwtToken(), id: createdWebhook.id },
|
body: { id: createdWebhook.id },
|
||||||
});
|
});
|
||||||
const body = await res.json();
|
const body = await res.json();
|
||||||
|
|
||||||
|
|||||||
@@ -21,7 +21,7 @@ describe("Authentication middleware", () => {
|
|||||||
{
|
{
|
||||||
// @ts-expect-error mock request
|
// @ts-expect-error mock request
|
||||||
request: {
|
request: {
|
||||||
get: vi.fn(() => `Bearer ${user.getJwtToken()}`),
|
get: vi.fn(() => `Bearer ${user.getSessionToken()}`),
|
||||||
},
|
},
|
||||||
state,
|
state,
|
||||||
cache: {},
|
cache: {},
|
||||||
@@ -41,7 +41,7 @@ describe("Authentication middleware", () => {
|
|||||||
{
|
{
|
||||||
// @ts-expect-error mock request
|
// @ts-expect-error mock request
|
||||||
request: {
|
request: {
|
||||||
get: vi.fn(() => `Bearer ${user.getJwtToken()}error`),
|
get: vi.fn(() => `Bearer ${user.getSessionToken()}error`),
|
||||||
},
|
},
|
||||||
state,
|
state,
|
||||||
cache: {},
|
cache: {},
|
||||||
@@ -65,7 +65,7 @@ describe("Authentication middleware", () => {
|
|||||||
{
|
{
|
||||||
// @ts-expect-error mock request
|
// @ts-expect-error mock request
|
||||||
request: {
|
request: {
|
||||||
get: vi.fn(() => `Bearer ${user.getJwtToken()}`),
|
get: vi.fn(() => `Bearer ${user.getSessionToken()}`),
|
||||||
},
|
},
|
||||||
state,
|
state,
|
||||||
cache: {},
|
cache: {},
|
||||||
@@ -295,7 +295,7 @@ describe("Authentication middleware", () => {
|
|||||||
// @ts-expect-error mock request
|
// @ts-expect-error mock request
|
||||||
get: vi.fn(() => null),
|
get: vi.fn(() => null),
|
||||||
query: {
|
query: {
|
||||||
token: user.getJwtToken(),
|
token: user.getSessionToken(),
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
state,
|
state,
|
||||||
@@ -316,7 +316,7 @@ describe("Authentication middleware", () => {
|
|||||||
// @ts-expect-error mock request
|
// @ts-expect-error mock request
|
||||||
get: vi.fn(() => null),
|
get: vi.fn(() => null),
|
||||||
body: {
|
body: {
|
||||||
token: user.getJwtToken(),
|
token: user.getSessionToken(),
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
state,
|
state,
|
||||||
@@ -342,7 +342,7 @@ describe("Authentication middleware", () => {
|
|||||||
{
|
{
|
||||||
// @ts-expect-error mock request
|
// @ts-expect-error mock request
|
||||||
request: {
|
request: {
|
||||||
get: vi.fn(() => `Bearer ${user.getJwtToken()}`),
|
get: vi.fn(() => `Bearer ${user.getSessionToken()}`),
|
||||||
},
|
},
|
||||||
state,
|
state,
|
||||||
cache: {},
|
cache: {},
|
||||||
@@ -372,7 +372,7 @@ describe("Authentication middleware", () => {
|
|||||||
{
|
{
|
||||||
// @ts-expect-error mock request
|
// @ts-expect-error mock request
|
||||||
request: {
|
request: {
|
||||||
get: vi.fn(() => `Bearer ${user.getJwtToken()}`),
|
get: vi.fn(() => `Bearer ${user.getSessionToken()}`),
|
||||||
},
|
},
|
||||||
state,
|
state,
|
||||||
cache: {},
|
cache: {},
|
||||||
|
|||||||
@@ -153,10 +153,10 @@ describe("user model", () => {
|
|||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
describe("getJwtToken", () => {
|
describe("getSessionToken", () => {
|
||||||
it("should set JWT secret", async () => {
|
it("should set JWT secret", async () => {
|
||||||
const user = await buildUser();
|
const user = await buildUser();
|
||||||
expect(user.getJwtToken()).toBeTruthy();
|
expect(user.getSessionToken()).toBeTruthy();
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|||||||
@@ -608,7 +608,7 @@ class User extends ParanoidModel<
|
|||||||
* @param service The authentication service used to generate the token, if applicable
|
* @param service The authentication service used to generate the token, if applicable
|
||||||
* @returns The session token
|
* @returns The session token
|
||||||
*/
|
*/
|
||||||
getJwtToken = (expiresAt?: Date, service?: string) =>
|
getSessionToken = (expiresAt?: Date, service?: string) =>
|
||||||
JWT.sign(
|
JWT.sign(
|
||||||
{
|
{
|
||||||
id: this.id,
|
id: this.id,
|
||||||
|
|||||||
@@ -15,11 +15,7 @@ const server = getTestServer();
|
|||||||
describe("#accessRequests.create", () => {
|
describe("#accessRequests.create", () => {
|
||||||
it("should require id", async () => {
|
it("should require id", async () => {
|
||||||
const user = await buildUser();
|
const user = await buildUser();
|
||||||
const res = await server.post("/api/accessRequests.create", {
|
const res = await server.post("/api/accessRequests.create", user);
|
||||||
body: {
|
|
||||||
token: user.getJwtToken(),
|
|
||||||
},
|
|
||||||
});
|
|
||||||
const body = await res.json();
|
const body = await res.json();
|
||||||
expect(res.status).toEqual(400);
|
expect(res.status).toEqual(400);
|
||||||
expect(body.message).toEqual("documentId: Must be a valid UUID or slug");
|
expect(body.message).toEqual("documentId: Must be a valid UUID or slug");
|
||||||
@@ -37,9 +33,8 @@ describe("#accessRequests.create", () => {
|
|||||||
|
|
||||||
it("should return 404 for non-existent document", async () => {
|
it("should return 404 for non-existent document", async () => {
|
||||||
const user = await buildUser();
|
const user = await buildUser();
|
||||||
const res = await server.post("/api/accessRequests.create", {
|
const res = await server.post("/api/accessRequests.create", user, {
|
||||||
body: {
|
body: {
|
||||||
token: user.getJwtToken(),
|
|
||||||
documentId: "a8f22c38-f4eb-4909-8c30-b927af36c5f3",
|
documentId: "a8f22c38-f4eb-4909-8c30-b927af36c5f3",
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
@@ -63,9 +58,8 @@ describe("#accessRequests.create", () => {
|
|||||||
collectionId: collection.id,
|
collectionId: collection.id,
|
||||||
});
|
});
|
||||||
|
|
||||||
const res = await server.post("/api/accessRequests.create", {
|
const res = await server.post("/api/accessRequests.create", requester, {
|
||||||
body: {
|
body: {
|
||||||
token: requester.getJwtToken(),
|
|
||||||
documentId: document.id,
|
documentId: document.id,
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
@@ -85,9 +79,8 @@ describe("#accessRequests.create", () => {
|
|||||||
createdById: owner.id,
|
createdById: owner.id,
|
||||||
});
|
});
|
||||||
|
|
||||||
const res = await server.post("/api/accessRequests.create", {
|
const res = await server.post("/api/accessRequests.create", requester, {
|
||||||
body: {
|
body: {
|
||||||
token: requester.getJwtToken(),
|
|
||||||
documentId: document.id,
|
documentId: document.id,
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
@@ -110,9 +103,8 @@ describe("#accessRequests.create", () => {
|
|||||||
collectionId: collection.id,
|
collectionId: collection.id,
|
||||||
});
|
});
|
||||||
|
|
||||||
const res = await server.post("/api/accessRequests.create", {
|
const res = await server.post("/api/accessRequests.create", requester, {
|
||||||
body: {
|
body: {
|
||||||
token: requester.getJwtToken(),
|
|
||||||
documentId: document.urlId,
|
documentId: document.urlId,
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
@@ -135,17 +127,15 @@ describe("#accessRequests.create", () => {
|
|||||||
});
|
});
|
||||||
|
|
||||||
// Create first access request
|
// Create first access request
|
||||||
const res1 = await server.post("/api/accessRequests.create", {
|
const res1 = await server.post("/api/accessRequests.create", requester, {
|
||||||
body: {
|
body: {
|
||||||
token: requester.getJwtToken(),
|
|
||||||
documentId: document.id,
|
documentId: document.id,
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
|
|
||||||
// Try to create another
|
// Try to create another
|
||||||
const res2 = await server.post("/api/accessRequests.create", {
|
const res2 = await server.post("/api/accessRequests.create", requester, {
|
||||||
body: {
|
body: {
|
||||||
token: requester.getJwtToken(),
|
|
||||||
documentId: document.id,
|
documentId: document.id,
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
@@ -189,9 +179,8 @@ describe("#accessRequests.create", () => {
|
|||||||
});
|
});
|
||||||
|
|
||||||
// Create new request
|
// Create new request
|
||||||
const res2 = await server.post("/api/accessRequests.create", {
|
const res2 = await server.post("/api/accessRequests.create", requester, {
|
||||||
body: {
|
body: {
|
||||||
token: requester.getJwtToken(),
|
|
||||||
documentId: document.id,
|
documentId: document.id,
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
@@ -211,11 +200,7 @@ describe("#accessRequests.info", () => {
|
|||||||
|
|
||||||
it("should fail if both id and documentId are missing", async () => {
|
it("should fail if both id and documentId are missing", async () => {
|
||||||
const user = await buildUser();
|
const user = await buildUser();
|
||||||
const res = await server.post("/api/accessRequests.info", {
|
const res = await server.post("/api/accessRequests.info", user);
|
||||||
body: {
|
|
||||||
token: user.getJwtToken(),
|
|
||||||
},
|
|
||||||
});
|
|
||||||
expect(res.status).toEqual(400);
|
expect(res.status).toEqual(400);
|
||||||
});
|
});
|
||||||
|
|
||||||
@@ -234,9 +219,8 @@ describe("#accessRequests.info", () => {
|
|||||||
teamId: team.id,
|
teamId: team.id,
|
||||||
});
|
});
|
||||||
|
|
||||||
const res = await server.post("/api/accessRequests.info", {
|
const res = await server.post("/api/accessRequests.info", requester, {
|
||||||
body: {
|
body: {
|
||||||
token: requester.getJwtToken(),
|
|
||||||
id: accessRequest.id,
|
id: accessRequest.id,
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
@@ -262,9 +246,8 @@ describe("#accessRequests.info", () => {
|
|||||||
teamId: team.id,
|
teamId: team.id,
|
||||||
});
|
});
|
||||||
|
|
||||||
const res = await server.post("/api/accessRequests.info", {
|
const res = await server.post("/api/accessRequests.info", requester, {
|
||||||
body: {
|
body: {
|
||||||
token: requester.getJwtToken(),
|
|
||||||
documentId: document.urlId,
|
documentId: document.urlId,
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
@@ -277,9 +260,8 @@ describe("#accessRequests.info", () => {
|
|||||||
|
|
||||||
it("should return 404 if access request not found", async () => {
|
it("should return 404 if access request not found", async () => {
|
||||||
const user = await buildUser();
|
const user = await buildUser();
|
||||||
const res = await server.post("/api/accessRequests.info", {
|
const res = await server.post("/api/accessRequests.info", user, {
|
||||||
body: {
|
body: {
|
||||||
token: user.getJwtToken(),
|
|
||||||
id: "00000000-0000-0000-0000-000000000000",
|
id: "00000000-0000-0000-0000-000000000000",
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
@@ -309,9 +291,8 @@ describe("#accessRequests.approve", () => {
|
|||||||
status: AccessRequestStatus.Pending,
|
status: AccessRequestStatus.Pending,
|
||||||
});
|
});
|
||||||
|
|
||||||
const res = await server.post("/api/accessRequests.approve", {
|
const res = await server.post("/api/accessRequests.approve", admin, {
|
||||||
body: {
|
body: {
|
||||||
token: admin.getJwtToken(),
|
|
||||||
id: accessRequest.id,
|
id: accessRequest.id,
|
||||||
permission: DocumentPermission.ReadWrite,
|
permission: DocumentPermission.ReadWrite,
|
||||||
},
|
},
|
||||||
@@ -355,9 +336,8 @@ describe("#accessRequests.approve", () => {
|
|||||||
teamId: team.id,
|
teamId: team.id,
|
||||||
});
|
});
|
||||||
|
|
||||||
const res = await server.post("/api/accessRequests.approve", {
|
const res = await server.post("/api/accessRequests.approve", nonManager, {
|
||||||
body: {
|
body: {
|
||||||
token: nonManager.getJwtToken(),
|
|
||||||
id: accessRequest.id,
|
id: accessRequest.id,
|
||||||
permission: DocumentPermission.ReadWrite,
|
permission: DocumentPermission.ReadWrite,
|
||||||
},
|
},
|
||||||
@@ -389,9 +369,8 @@ describe("#accessRequests.approve", () => {
|
|||||||
status: AccessRequestStatus.Pending,
|
status: AccessRequestStatus.Pending,
|
||||||
});
|
});
|
||||||
|
|
||||||
const res = await server.post("/api/accessRequests.approve", {
|
const res = await server.post("/api/accessRequests.approve", admin, {
|
||||||
body: {
|
body: {
|
||||||
token: admin.getJwtToken(),
|
|
||||||
id: accessRequest.id,
|
id: accessRequest.id,
|
||||||
permission: DocumentPermission.ReadWrite,
|
permission: DocumentPermission.ReadWrite,
|
||||||
},
|
},
|
||||||
@@ -429,9 +408,8 @@ describe("#accessRequests.approve", () => {
|
|||||||
respondedAt: new Date(),
|
respondedAt: new Date(),
|
||||||
});
|
});
|
||||||
|
|
||||||
const res = await server.post("/api/accessRequests.approve", {
|
const res = await server.post("/api/accessRequests.approve", admin, {
|
||||||
body: {
|
body: {
|
||||||
token: admin.getJwtToken(),
|
|
||||||
id: accessRequest.id,
|
id: accessRequest.id,
|
||||||
permission: DocumentPermission.ReadWrite,
|
permission: DocumentPermission.ReadWrite,
|
||||||
},
|
},
|
||||||
@@ -463,9 +441,8 @@ describe("#accessRequests.dismiss", () => {
|
|||||||
teamId: team.id,
|
teamId: team.id,
|
||||||
});
|
});
|
||||||
|
|
||||||
const res = await server.post("/api/accessRequests.dismiss", {
|
const res = await server.post("/api/accessRequests.dismiss", admin, {
|
||||||
body: {
|
body: {
|
||||||
token: admin.getJwtToken(),
|
|
||||||
id: accessRequest.id,
|
id: accessRequest.id,
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
@@ -509,9 +486,8 @@ describe("#accessRequests.dismiss", () => {
|
|||||||
teamId: team.id,
|
teamId: team.id,
|
||||||
});
|
});
|
||||||
|
|
||||||
const res = await server.post("/api/accessRequests.dismiss", {
|
const res = await server.post("/api/accessRequests.dismiss", nonManager, {
|
||||||
body: {
|
body: {
|
||||||
token: nonManager.getJwtToken(),
|
|
||||||
id: accessRequest.id,
|
id: accessRequest.id,
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
@@ -539,9 +515,8 @@ describe("#accessRequests.dismiss", () => {
|
|||||||
respondedAt,
|
respondedAt,
|
||||||
});
|
});
|
||||||
|
|
||||||
const res = await server.post("/api/accessRequests.dismiss", {
|
const res = await server.post("/api/accessRequests.dismiss", admin, {
|
||||||
body: {
|
body: {
|
||||||
token: admin.getJwtToken(),
|
|
||||||
id: accessRequest.id,
|
id: accessRequest.id,
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
|
|||||||
@@ -14,9 +14,8 @@ describe("#apiKeys.create", () => {
|
|||||||
const now = new Date();
|
const now = new Date();
|
||||||
const user = await buildUser();
|
const user = await buildUser();
|
||||||
|
|
||||||
const res = await server.post("/api/apiKeys.create", {
|
const res = await server.post("/api/apiKeys.create", user, {
|
||||||
body: {
|
body: {
|
||||||
token: user.getJwtToken(),
|
|
||||||
name: "My API Key",
|
name: "My API Key",
|
||||||
expiresAt: now.toISOString(),
|
expiresAt: now.toISOString(),
|
||||||
},
|
},
|
||||||
@@ -32,9 +31,8 @@ describe("#apiKeys.create", () => {
|
|||||||
it("should allow creating an api key without expiry", async () => {
|
it("should allow creating an api key without expiry", async () => {
|
||||||
const user = await buildUser();
|
const user = await buildUser();
|
||||||
|
|
||||||
const res = await server.post("/api/apiKeys.create", {
|
const res = await server.post("/api/apiKeys.create", user, {
|
||||||
body: {
|
body: {
|
||||||
token: user.getJwtToken(),
|
|
||||||
name: "My API Key",
|
name: "My API Key",
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
@@ -49,9 +47,8 @@ describe("#apiKeys.create", () => {
|
|||||||
it("should allow creating an api key with scopes", async () => {
|
it("should allow creating an api key with scopes", async () => {
|
||||||
const user = await buildUser();
|
const user = await buildUser();
|
||||||
|
|
||||||
const res = await server.post("/api/apiKeys.create", {
|
const res = await server.post("/api/apiKeys.create", user, {
|
||||||
body: {
|
body: {
|
||||||
token: user.getJwtToken(),
|
|
||||||
name: "My API Key",
|
name: "My API Key",
|
||||||
scope: [
|
scope: [
|
||||||
"/api/documents.list",
|
"/api/documents.list",
|
||||||
@@ -82,9 +79,8 @@ describe("#apiKeys.create", () => {
|
|||||||
it("should allow viewers to create an api key", async () => {
|
it("should allow viewers to create an api key", async () => {
|
||||||
const viewer = await buildViewer();
|
const viewer = await buildViewer();
|
||||||
|
|
||||||
const res = await server.post("/api/apiKeys.create", {
|
const res = await server.post("/api/apiKeys.create", viewer, {
|
||||||
body: {
|
body: {
|
||||||
token: viewer.getJwtToken(),
|
|
||||||
name: "My API Key",
|
name: "My API Key",
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
@@ -97,9 +93,8 @@ describe("#apiKeys.create", () => {
|
|||||||
it("should not allow guests to create an api key", async () => {
|
it("should not allow guests to create an api key", async () => {
|
||||||
const guest = await buildGuestUser();
|
const guest = await buildGuestUser();
|
||||||
|
|
||||||
const res = await server.post("/api/apiKeys.create", {
|
const res = await server.post("/api/apiKeys.create", guest, {
|
||||||
body: {
|
body: {
|
||||||
token: guest.getJwtToken(),
|
|
||||||
name: "My API Key",
|
name: "My API Key",
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
@@ -119,10 +114,9 @@ describe("#apiKeys.list", () => {
|
|||||||
const admin = await buildAdmin({ teamId: user.teamId });
|
const admin = await buildAdmin({ teamId: user.teamId });
|
||||||
await buildApiKey({ userId: user.id });
|
await buildApiKey({ userId: user.id });
|
||||||
|
|
||||||
const res = await server.post("/api/apiKeys.list", {
|
const res = await server.post("/api/apiKeys.list", admin, {
|
||||||
body: {
|
body: {
|
||||||
userId: user.id,
|
userId: user.id,
|
||||||
token: admin.getJwtToken(),
|
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
const body = await res.json();
|
const body = await res.json();
|
||||||
@@ -137,10 +131,9 @@ describe("#apiKeys.list", () => {
|
|||||||
await buildApiKey({ userId: user.id });
|
await buildApiKey({ userId: user.id });
|
||||||
await buildApiKey({ userId: admin.id });
|
await buildApiKey({ userId: admin.id });
|
||||||
|
|
||||||
const res = await server.post("/api/apiKeys.list", {
|
const res = await server.post("/api/apiKeys.list", admin, {
|
||||||
body: {
|
body: {
|
||||||
userId: admin.id,
|
userId: admin.id,
|
||||||
token: admin.getJwtToken(),
|
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
const body = await res.json();
|
const body = await res.json();
|
||||||
@@ -156,11 +149,7 @@ describe("#apiKeys.list", () => {
|
|||||||
await buildApiKey({ userId: user.id });
|
await buildApiKey({ userId: user.id });
|
||||||
await buildApiKey();
|
await buildApiKey();
|
||||||
|
|
||||||
const res = await server.post("/api/apiKeys.list", {
|
const res = await server.post("/api/apiKeys.list", admin);
|
||||||
body: {
|
|
||||||
token: admin.getJwtToken(),
|
|
||||||
},
|
|
||||||
});
|
|
||||||
|
|
||||||
const body = await res.json();
|
const body = await res.json();
|
||||||
|
|
||||||
@@ -174,9 +163,8 @@ describe("#apiKeys.list", () => {
|
|||||||
await buildApiKey({ userId: admin.id, name: "Staging Key" });
|
await buildApiKey({ userId: admin.id, name: "Staging Key" });
|
||||||
await buildApiKey({ userId: admin.id, name: "Development Token" });
|
await buildApiKey({ userId: admin.id, name: "Development Token" });
|
||||||
|
|
||||||
const res = await server.post("/api/apiKeys.list", {
|
const res = await server.post("/api/apiKeys.list", admin, {
|
||||||
body: {
|
body: {
|
||||||
token: admin.getJwtToken(),
|
|
||||||
query: "key",
|
query: "key",
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
@@ -196,9 +184,8 @@ describe("#apiKeys.list", () => {
|
|||||||
await buildApiKey({ userId: admin.id, name: "Production Key" });
|
await buildApiKey({ userId: admin.id, name: "Production Key" });
|
||||||
await buildApiKey({ userId: admin.id, name: "Staging Key" });
|
await buildApiKey({ userId: admin.id, name: "Staging Key" });
|
||||||
|
|
||||||
const res = await server.post("/api/apiKeys.list", {
|
const res = await server.post("/api/apiKeys.list", admin, {
|
||||||
body: {
|
body: {
|
||||||
token: admin.getJwtToken(),
|
|
||||||
query: "PRODUCTION",
|
query: "PRODUCTION",
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
@@ -213,9 +200,8 @@ describe("#apiKeys.list", () => {
|
|||||||
const admin = await buildAdmin();
|
const admin = await buildAdmin();
|
||||||
await buildApiKey({ userId: admin.id, name: "Production Key" });
|
await buildApiKey({ userId: admin.id, name: "Production Key" });
|
||||||
|
|
||||||
const res = await server.post("/api/apiKeys.list", {
|
const res = await server.post("/api/apiKeys.list", admin, {
|
||||||
body: {
|
body: {
|
||||||
token: admin.getJwtToken(),
|
|
||||||
query: "nonexistent",
|
query: "nonexistent",
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
@@ -229,9 +215,8 @@ describe("#apiKeys.list", () => {
|
|||||||
const viewer = await buildViewer();
|
const viewer = await buildViewer();
|
||||||
await buildApiKey({ userId: viewer.id });
|
await buildApiKey({ userId: viewer.id });
|
||||||
|
|
||||||
const res = await server.post("/api/apiKeys.list", {
|
const res = await server.post("/api/apiKeys.list", viewer, {
|
||||||
body: {
|
body: {
|
||||||
token: viewer.getJwtToken(),
|
|
||||||
userId: viewer.id,
|
userId: viewer.id,
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
@@ -255,9 +240,8 @@ describe("#apiKeys.delete", () => {
|
|||||||
userId: user.id,
|
userId: user.id,
|
||||||
});
|
});
|
||||||
|
|
||||||
const res = await server.post("/api/apiKeys.delete", {
|
const res = await server.post("/api/apiKeys.delete", user, {
|
||||||
body: {
|
body: {
|
||||||
token: user.getJwtToken(),
|
|
||||||
id: apiKey.id,
|
id: apiKey.id,
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
@@ -273,9 +257,8 @@ describe("#apiKeys.delete", () => {
|
|||||||
userId: otherUser.id,
|
userId: otherUser.id,
|
||||||
});
|
});
|
||||||
|
|
||||||
const res = await server.post("/api/apiKeys.delete", {
|
const res = await server.post("/api/apiKeys.delete", user, {
|
||||||
body: {
|
body: {
|
||||||
token: user.getJwtToken(),
|
|
||||||
id: apiKey.id,
|
id: apiKey.id,
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
@@ -291,9 +274,8 @@ describe("#apiKeys.delete", () => {
|
|||||||
userId: user.id,
|
userId: user.id,
|
||||||
});
|
});
|
||||||
|
|
||||||
const res = await server.post("/api/apiKeys.delete", {
|
const res = await server.post("/api/apiKeys.delete", admin, {
|
||||||
body: {
|
body: {
|
||||||
token: admin.getJwtToken(),
|
|
||||||
id: apiKey.id,
|
id: apiKey.id,
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
@@ -305,9 +287,8 @@ describe("#apiKeys.delete", () => {
|
|||||||
const viewer = await buildViewer();
|
const viewer = await buildViewer();
|
||||||
const apiKey = await buildApiKey({ userId: viewer.id });
|
const apiKey = await buildApiKey({ userId: viewer.id });
|
||||||
|
|
||||||
const res = await server.post("/api/apiKeys.delete", {
|
const res = await server.post("/api/apiKeys.delete", viewer, {
|
||||||
body: {
|
body: {
|
||||||
token: viewer.getJwtToken(),
|
|
||||||
id: apiKey.id,
|
id: apiKey.id,
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
|
|||||||
@@ -33,11 +33,7 @@ describe("#attachments.list", () => {
|
|||||||
userId: user.id,
|
userId: user.id,
|
||||||
});
|
});
|
||||||
|
|
||||||
const res = await server.post("/api/attachments.list", {
|
const res = await server.post("/api/attachments.list", user);
|
||||||
body: {
|
|
||||||
token: user.getJwtToken(),
|
|
||||||
},
|
|
||||||
});
|
|
||||||
const body = await res.json();
|
const body = await res.json();
|
||||||
|
|
||||||
expect(res.status).toEqual(200);
|
expect(res.status).toEqual(200);
|
||||||
@@ -61,10 +57,9 @@ describe("#attachments.list", () => {
|
|||||||
userId: admin.id,
|
userId: admin.id,
|
||||||
});
|
});
|
||||||
|
|
||||||
const res = await server.post("/api/attachments.list", {
|
const res = await server.post("/api/attachments.list", admin, {
|
||||||
body: {
|
body: {
|
||||||
userId: user.id,
|
userId: user.id,
|
||||||
token: admin.getJwtToken(),
|
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
const body = await res.json();
|
const body = await res.json();
|
||||||
@@ -90,10 +85,9 @@ describe("#attachments.list", () => {
|
|||||||
userId: user.id,
|
userId: user.id,
|
||||||
});
|
});
|
||||||
|
|
||||||
const res = await server.post("/api/attachments.list", {
|
const res = await server.post("/api/attachments.list", user, {
|
||||||
body: {
|
body: {
|
||||||
documentId: document.id,
|
documentId: document.id,
|
||||||
token: user.getJwtToken(),
|
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
const body = await res.json();
|
const body = await res.json();
|
||||||
@@ -113,11 +107,7 @@ describe("#attachments.list", () => {
|
|||||||
userId: anotherUser.id,
|
userId: anotherUser.id,
|
||||||
});
|
});
|
||||||
|
|
||||||
const res = await server.post("/api/attachments.list", {
|
const res = await server.post("/api/attachments.list", user);
|
||||||
body: {
|
|
||||||
token: user.getJwtToken(),
|
|
||||||
},
|
|
||||||
});
|
|
||||||
const body = await res.json();
|
const body = await res.json();
|
||||||
|
|
||||||
expect(res.status).toEqual(200);
|
expect(res.status).toEqual(200);
|
||||||
@@ -139,13 +129,12 @@ describe("#attachments.create", () => {
|
|||||||
describe("member", () => {
|
describe("member", () => {
|
||||||
it("should allow upload using avatar preset", async () => {
|
it("should allow upload using avatar preset", async () => {
|
||||||
const user = await buildUser();
|
const user = await buildUser();
|
||||||
const res = await server.post("/api/attachments.create", {
|
const res = await server.post("/api/attachments.create", user, {
|
||||||
body: {
|
body: {
|
||||||
name: "test.png",
|
name: "test.png",
|
||||||
contentType: "image/png",
|
contentType: "image/png",
|
||||||
size: 1000,
|
size: 1000,
|
||||||
preset: AttachmentPreset.Avatar,
|
preset: AttachmentPreset.Avatar,
|
||||||
token: user.getJwtToken(),
|
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
expect(res.status).toEqual(200);
|
expect(res.status).toEqual(200);
|
||||||
@@ -164,14 +153,13 @@ describe("#attachments.create", () => {
|
|||||||
userId: user.id,
|
userId: user.id,
|
||||||
});
|
});
|
||||||
|
|
||||||
const res = await server.post("/api/attachments.create", {
|
const res = await server.post("/api/attachments.create", user, {
|
||||||
body: {
|
body: {
|
||||||
name: "test.png",
|
name: "test.png",
|
||||||
contentType: "image/png",
|
contentType: "image/png",
|
||||||
size: 1000,
|
size: 1000,
|
||||||
documentId: document.id,
|
documentId: document.id,
|
||||||
preset: AttachmentPreset.DocumentAttachment,
|
preset: AttachmentPreset.DocumentAttachment,
|
||||||
token: user.getJwtToken(),
|
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
expect(res.status).toEqual(200);
|
expect(res.status).toEqual(200);
|
||||||
@@ -179,13 +167,12 @@ describe("#attachments.create", () => {
|
|||||||
|
|
||||||
it("should create expiring attachment using import preset", async () => {
|
it("should create expiring attachment using import preset", async () => {
|
||||||
const user = await buildUser();
|
const user = await buildUser();
|
||||||
const res = await server.post("/api/attachments.create", {
|
const res = await server.post("/api/attachments.create", user, {
|
||||||
body: {
|
body: {
|
||||||
name: "test.zip",
|
name: "test.zip",
|
||||||
contentType: "application/zip",
|
contentType: "application/zip",
|
||||||
size: 10000,
|
size: 10000,
|
||||||
preset: AttachmentPreset.WorkspaceImport,
|
preset: AttachmentPreset.WorkspaceImport,
|
||||||
token: user.getJwtToken(),
|
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
expect(res.status).toEqual(200);
|
expect(res.status).toEqual(200);
|
||||||
@@ -201,14 +188,13 @@ describe("#attachments.create", () => {
|
|||||||
const user = await buildUser();
|
const user = await buildUser();
|
||||||
const document = await buildDocument();
|
const document = await buildDocument();
|
||||||
|
|
||||||
const res = await server.post("/api/attachments.create", {
|
const res = await server.post("/api/attachments.create", user, {
|
||||||
body: {
|
body: {
|
||||||
name: "test.png",
|
name: "test.png",
|
||||||
contentType: "image/png",
|
contentType: "image/png",
|
||||||
size: 1000,
|
size: 1000,
|
||||||
documentId: document.id,
|
documentId: document.id,
|
||||||
preset: AttachmentPreset.DocumentAttachment,
|
preset: AttachmentPreset.DocumentAttachment,
|
||||||
token: user.getJwtToken(),
|
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
expect(res.status).toEqual(403);
|
expect(res.status).toEqual(403);
|
||||||
@@ -216,13 +202,12 @@ describe("#attachments.create", () => {
|
|||||||
|
|
||||||
it("should not allow file upload for avatar preset", async () => {
|
it("should not allow file upload for avatar preset", async () => {
|
||||||
const user = await buildUser();
|
const user = await buildUser();
|
||||||
const res = await server.post("/api/attachments.create", {
|
const res = await server.post("/api/attachments.create", user, {
|
||||||
body: {
|
body: {
|
||||||
name: "test.pdf",
|
name: "test.pdf",
|
||||||
contentType: "application/pdf",
|
contentType: "application/pdf",
|
||||||
size: 1000,
|
size: 1000,
|
||||||
preset: AttachmentPreset.Avatar,
|
preset: AttachmentPreset.Avatar,
|
||||||
token: user.getJwtToken(),
|
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
expect(res.status).toEqual(400);
|
expect(res.status).toEqual(400);
|
||||||
@@ -230,13 +215,12 @@ describe("#attachments.create", () => {
|
|||||||
|
|
||||||
it("should reject negative size", async () => {
|
it("should reject negative size", async () => {
|
||||||
const user = await buildUser();
|
const user = await buildUser();
|
||||||
const res = await server.post("/api/attachments.create", {
|
const res = await server.post("/api/attachments.create", user, {
|
||||||
body: {
|
body: {
|
||||||
name: "test.png",
|
name: "test.png",
|
||||||
contentType: "image/png",
|
contentType: "image/png",
|
||||||
size: -1,
|
size: -1,
|
||||||
preset: AttachmentPreset.Emoji,
|
preset: AttachmentPreset.Emoji,
|
||||||
token: user.getJwtToken(),
|
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
expect(res.status).toEqual(400);
|
expect(res.status).toEqual(400);
|
||||||
@@ -244,13 +228,12 @@ describe("#attachments.create", () => {
|
|||||||
|
|
||||||
it("should reject non-integer size", async () => {
|
it("should reject non-integer size", async () => {
|
||||||
const user = await buildUser();
|
const user = await buildUser();
|
||||||
const res = await server.post("/api/attachments.create", {
|
const res = await server.post("/api/attachments.create", user, {
|
||||||
body: {
|
body: {
|
||||||
name: "test.png",
|
name: "test.png",
|
||||||
contentType: "image/png",
|
contentType: "image/png",
|
||||||
size: 1.5,
|
size: 1.5,
|
||||||
preset: AttachmentPreset.Emoji,
|
preset: AttachmentPreset.Emoji,
|
||||||
token: user.getJwtToken(),
|
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
expect(res.status).toEqual(400);
|
expect(res.status).toEqual(400);
|
||||||
@@ -276,14 +259,13 @@ describe("#attachments.create", () => {
|
|||||||
permission: CollectionPermission.ReadWrite,
|
permission: CollectionPermission.ReadWrite,
|
||||||
});
|
});
|
||||||
|
|
||||||
const res = await server.post("/api/attachments.create", {
|
const res = await server.post("/api/attachments.create", user, {
|
||||||
body: {
|
body: {
|
||||||
name: "test.png",
|
name: "test.png",
|
||||||
contentType: "image/png",
|
contentType: "image/png",
|
||||||
size: 1000,
|
size: 1000,
|
||||||
documentId: document.id,
|
documentId: document.id,
|
||||||
preset: AttachmentPreset.DocumentAttachment,
|
preset: AttachmentPreset.DocumentAttachment,
|
||||||
token: user.getJwtToken(),
|
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
expect(res.status).toEqual(200);
|
expect(res.status).toEqual(200);
|
||||||
@@ -293,14 +275,13 @@ describe("#attachments.create", () => {
|
|||||||
const user = await buildViewer();
|
const user = await buildViewer();
|
||||||
const document = await buildDocument({ teamId: user.teamId });
|
const document = await buildDocument({ teamId: user.teamId });
|
||||||
|
|
||||||
const res = await server.post("/api/attachments.create", {
|
const res = await server.post("/api/attachments.create", user, {
|
||||||
body: {
|
body: {
|
||||||
name: "test.png",
|
name: "test.png",
|
||||||
contentType: "image/png",
|
contentType: "image/png",
|
||||||
size: 1000,
|
size: 1000,
|
||||||
documentId: document.id,
|
documentId: document.id,
|
||||||
preset: AttachmentPreset.DocumentAttachment,
|
preset: AttachmentPreset.DocumentAttachment,
|
||||||
token: user.getJwtToken(),
|
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
expect(res.status).toEqual(403);
|
expect(res.status).toEqual(403);
|
||||||
@@ -308,13 +289,12 @@ describe("#attachments.create", () => {
|
|||||||
|
|
||||||
it("should allow upload using avatar preset", async () => {
|
it("should allow upload using avatar preset", async () => {
|
||||||
const user = await buildViewer();
|
const user = await buildViewer();
|
||||||
const res = await server.post("/api/attachments.create", {
|
const res = await server.post("/api/attachments.create", user, {
|
||||||
body: {
|
body: {
|
||||||
name: "test.png",
|
name: "test.png",
|
||||||
contentType: "image/png",
|
contentType: "image/png",
|
||||||
size: 1000,
|
size: 1000,
|
||||||
preset: AttachmentPreset.Avatar,
|
preset: AttachmentPreset.Avatar,
|
||||||
token: user.getJwtToken(),
|
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
expect(res.status).toEqual(200);
|
expect(res.status).toEqual(200);
|
||||||
@@ -334,9 +314,8 @@ describe("#attachments.delete", () => {
|
|||||||
teamId: user.teamId,
|
teamId: user.teamId,
|
||||||
userId: user.id,
|
userId: user.id,
|
||||||
});
|
});
|
||||||
const res = await server.post("/api/attachments.delete", {
|
const res = await server.post("/api/attachments.delete", user, {
|
||||||
body: {
|
body: {
|
||||||
token: user.getJwtToken(),
|
|
||||||
id: attachment.id,
|
id: attachment.id,
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
@@ -358,9 +337,8 @@ describe("#attachments.delete", () => {
|
|||||||
});
|
});
|
||||||
attachment.documentId = null;
|
attachment.documentId = null;
|
||||||
await attachment.save();
|
await attachment.save();
|
||||||
const res = await server.post("/api/attachments.delete", {
|
const res = await server.post("/api/attachments.delete", user, {
|
||||||
body: {
|
body: {
|
||||||
token: user.getJwtToken(),
|
|
||||||
id: attachment.id,
|
id: attachment.id,
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
@@ -381,9 +359,8 @@ describe("#attachments.delete", () => {
|
|||||||
});
|
});
|
||||||
attachment.documentId = null;
|
attachment.documentId = null;
|
||||||
await attachment.save();
|
await attachment.save();
|
||||||
const res = await server.post("/api/attachments.delete", {
|
const res = await server.post("/api/attachments.delete", user, {
|
||||||
body: {
|
body: {
|
||||||
token: user.getJwtToken(),
|
|
||||||
id: attachment.id,
|
id: attachment.id,
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
@@ -402,9 +379,8 @@ describe("#attachments.delete", () => {
|
|||||||
const attachment = await buildAttachment();
|
const attachment = await buildAttachment();
|
||||||
attachment.documentId = null;
|
attachment.documentId = null;
|
||||||
await attachment.save();
|
await attachment.save();
|
||||||
const res = await server.post("/api/attachments.delete", {
|
const res = await server.post("/api/attachments.delete", user, {
|
||||||
body: {
|
body: {
|
||||||
token: user.getJwtToken(),
|
|
||||||
id: attachment.id,
|
id: attachment.id,
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
@@ -418,9 +394,8 @@ describe("#attachments.delete", () => {
|
|||||||
});
|
});
|
||||||
attachment.documentId = null;
|
attachment.documentId = null;
|
||||||
await attachment.save();
|
await attachment.save();
|
||||||
const res = await server.post("/api/attachments.delete", {
|
const res = await server.post("/api/attachments.delete", user, {
|
||||||
body: {
|
body: {
|
||||||
token: user.getJwtToken(),
|
|
||||||
id: attachment.id,
|
id: attachment.id,
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
@@ -443,9 +418,8 @@ describe("#attachments.delete", () => {
|
|||||||
documentId: document.id,
|
documentId: document.id,
|
||||||
acl: "private",
|
acl: "private",
|
||||||
});
|
});
|
||||||
const res = await server.post("/api/attachments.delete", {
|
const res = await server.post("/api/attachments.delete", user, {
|
||||||
body: {
|
body: {
|
||||||
token: user.getJwtToken(),
|
|
||||||
id: attachment.id,
|
id: attachment.id,
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
@@ -460,9 +434,8 @@ describe("#attachments.redirect", () => {
|
|||||||
teamId: user.teamId,
|
teamId: user.teamId,
|
||||||
userId: user.id,
|
userId: user.id,
|
||||||
});
|
});
|
||||||
const res = await server.post("/api/attachments.redirect", {
|
const res = await server.post("/api/attachments.redirect", user, {
|
||||||
body: {
|
body: {
|
||||||
token: user.getJwtToken(),
|
|
||||||
id: attachment.id,
|
id: attachment.id,
|
||||||
},
|
},
|
||||||
redirect: "manual",
|
redirect: "manual",
|
||||||
@@ -478,10 +451,8 @@ describe("#attachments.redirect", () => {
|
|||||||
});
|
});
|
||||||
const res = await server.post(
|
const res = await server.post(
|
||||||
`/api/attachments.redirect?id=${attachment.id}`,
|
`/api/attachments.redirect?id=${attachment.id}`,
|
||||||
|
user,
|
||||||
{
|
{
|
||||||
body: {
|
|
||||||
token: user.getJwtToken(),
|
|
||||||
},
|
|
||||||
redirect: "manual",
|
redirect: "manual",
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
@@ -505,9 +476,8 @@ describe("#attachments.redirect", () => {
|
|||||||
teamId: user.teamId,
|
teamId: user.teamId,
|
||||||
userId: user.id,
|
userId: user.id,
|
||||||
});
|
});
|
||||||
const res = await server.post("/api/attachments.redirect", {
|
const res = await server.post("/api/attachments.redirect", user, {
|
||||||
body: {
|
body: {
|
||||||
token: user.getJwtToken(),
|
|
||||||
id: attachment.id,
|
id: attachment.id,
|
||||||
},
|
},
|
||||||
redirect: "manual",
|
redirect: "manual",
|
||||||
@@ -532,9 +502,8 @@ describe("#attachments.redirect", () => {
|
|||||||
userId: user.id,
|
userId: user.id,
|
||||||
documentId: document.id,
|
documentId: document.id,
|
||||||
});
|
});
|
||||||
const res = await server.post("/api/attachments.redirect", {
|
const res = await server.post("/api/attachments.redirect", user, {
|
||||||
body: {
|
body: {
|
||||||
token: user.getJwtToken(),
|
|
||||||
id: attachment.id,
|
id: attachment.id,
|
||||||
},
|
},
|
||||||
redirect: "manual",
|
redirect: "manual",
|
||||||
@@ -587,9 +556,8 @@ describe("#attachments.redirect", () => {
|
|||||||
documentId: document.id,
|
documentId: document.id,
|
||||||
acl: "private",
|
acl: "private",
|
||||||
});
|
});
|
||||||
const res = await server.post("/api/attachments.redirect", {
|
const res = await server.post("/api/attachments.redirect", user, {
|
||||||
body: {
|
body: {
|
||||||
token: user.getJwtToken(),
|
|
||||||
id: attachment.id,
|
id: attachment.id,
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
@@ -598,11 +566,7 @@ describe("#attachments.redirect", () => {
|
|||||||
|
|
||||||
it("should fail in absence of id", async () => {
|
it("should fail in absence of id", async () => {
|
||||||
const user = await buildUser();
|
const user = await buildUser();
|
||||||
const res = await server.post("/api/attachments.redirect", {
|
const res = await server.post("/api/attachments.redirect", user);
|
||||||
body: {
|
|
||||||
token: user.getJwtToken(),
|
|
||||||
},
|
|
||||||
});
|
|
||||||
const body = await res.json();
|
const body = await res.json();
|
||||||
expect(res.status).toEqual(400);
|
expect(res.status).toEqual(400);
|
||||||
expect(body.message).toEqual("id is required");
|
expect(body.message).toEqual("id is required");
|
||||||
|
|||||||
@@ -27,11 +27,7 @@ describe("#auth.info", () => {
|
|||||||
teamId: team2.id,
|
teamId: team2.id,
|
||||||
email: user.email,
|
email: user.email,
|
||||||
});
|
});
|
||||||
const res = await server.post("/api/auth.info", {
|
const res = await server.post("/api/auth.info", user);
|
||||||
body: {
|
|
||||||
token: user.getJwtToken(),
|
|
||||||
},
|
|
||||||
});
|
|
||||||
const body = await res.json();
|
const body = await res.json();
|
||||||
expect(res.status).toEqual(200);
|
expect(res.status).toEqual(200);
|
||||||
|
|
||||||
@@ -52,11 +48,7 @@ describe("#auth.info", () => {
|
|||||||
const team = await buildTeam();
|
const team = await buildTeam();
|
||||||
const user = await buildUser({ teamId: team.id });
|
const user = await buildUser({ teamId: team.id });
|
||||||
await team.destroy();
|
await team.destroy();
|
||||||
const res = await server.post("/api/auth.info", {
|
const res = await server.post("/api/auth.info", user);
|
||||||
body: {
|
|
||||||
token: user.getJwtToken(),
|
|
||||||
},
|
|
||||||
});
|
|
||||||
expect(res.status).toEqual(401);
|
expect(res.status).toEqual(401);
|
||||||
});
|
});
|
||||||
|
|
||||||
@@ -69,18 +61,10 @@ describe("#auth.info", () => {
|
|||||||
describe("#auth.delete", () => {
|
describe("#auth.delete", () => {
|
||||||
it("should make the access token unusable", async () => {
|
it("should make the access token unusable", async () => {
|
||||||
const user = await buildUser();
|
const user = await buildUser();
|
||||||
const res = await server.post("/api/auth.delete", {
|
const res = await server.post("/api/auth.delete", user);
|
||||||
body: {
|
|
||||||
token: user.getJwtToken(),
|
|
||||||
},
|
|
||||||
});
|
|
||||||
expect(res.status).toEqual(200);
|
expect(res.status).toEqual(200);
|
||||||
|
|
||||||
const res2 = await server.post("/api/auth.info", {
|
const res2 = await server.post("/api/auth.info", user);
|
||||||
body: {
|
|
||||||
token: user.getJwtToken(),
|
|
||||||
},
|
|
||||||
});
|
|
||||||
expect(res2.status).toEqual(401);
|
expect(res2.status).toEqual(401);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|||||||
@@ -20,10 +20,9 @@ describe("#authenticationProviders.info", () => {
|
|||||||
teamId: team.id,
|
teamId: team.id,
|
||||||
});
|
});
|
||||||
const authenticationProviders = await team.$get("authenticationProviders");
|
const authenticationProviders = await team.$get("authenticationProviders");
|
||||||
const res = await server.post("/api/authenticationProviders.info", {
|
const res = await server.post("/api/authenticationProviders.info", user, {
|
||||||
body: {
|
body: {
|
||||||
id: authenticationProviders[0].id,
|
id: authenticationProviders[0].id,
|
||||||
token: user.getJwtToken(),
|
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
const body = await res.json();
|
const body = await res.json();
|
||||||
@@ -39,10 +38,9 @@ describe("#authenticationProviders.info", () => {
|
|||||||
const team = await buildTeam();
|
const team = await buildTeam();
|
||||||
const user = await buildUser();
|
const user = await buildUser();
|
||||||
const authenticationProviders = await team.$get("authenticationProviders");
|
const authenticationProviders = await team.$get("authenticationProviders");
|
||||||
const res = await server.post("/api/authenticationProviders.info", {
|
const res = await server.post("/api/authenticationProviders.info", user, {
|
||||||
body: {
|
body: {
|
||||||
id: authenticationProviders[0].id,
|
id: authenticationProviders[0].id,
|
||||||
token: user.getJwtToken(),
|
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
expect(res.status).toEqual(403);
|
expect(res.status).toEqual(403);
|
||||||
@@ -69,11 +67,10 @@ describe("#authenticationProviders.update", () => {
|
|||||||
teamId: team.id,
|
teamId: team.id,
|
||||||
});
|
});
|
||||||
const authenticationProviders = await team.$get("authenticationProviders");
|
const authenticationProviders = await team.$get("authenticationProviders");
|
||||||
const res = await server.post("/api/authenticationProviders.update", {
|
const res = await server.post("/api/authenticationProviders.update", user, {
|
||||||
body: {
|
body: {
|
||||||
id: authenticationProviders[0].id,
|
id: authenticationProviders[0].id,
|
||||||
isEnabled: false,
|
isEnabled: false,
|
||||||
token: user.getJwtToken(),
|
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
expect(res.status).toEqual(400);
|
expect(res.status).toEqual(400);
|
||||||
@@ -88,11 +85,10 @@ describe("#authenticationProviders.update", () => {
|
|||||||
name: "google",
|
name: "google",
|
||||||
providerId: randomUUID(),
|
providerId: randomUUID(),
|
||||||
});
|
});
|
||||||
const res = await server.post("/api/authenticationProviders.update", {
|
const res = await server.post("/api/authenticationProviders.update", user, {
|
||||||
body: {
|
body: {
|
||||||
id: googleProvider.id,
|
id: googleProvider.id,
|
||||||
isEnabled: false,
|
isEnabled: false,
|
||||||
token: user.getJwtToken(),
|
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
const body = await res.json();
|
const body = await res.json();
|
||||||
@@ -106,11 +102,10 @@ describe("#authenticationProviders.update", () => {
|
|||||||
const team = await buildTeam();
|
const team = await buildTeam();
|
||||||
const user = await buildUser({ teamId: team.id });
|
const user = await buildUser({ teamId: team.id });
|
||||||
const authenticationProviders = await team.$get("authenticationProviders");
|
const authenticationProviders = await team.$get("authenticationProviders");
|
||||||
const res = await server.post("/api/authenticationProviders.update", {
|
const res = await server.post("/api/authenticationProviders.update", user, {
|
||||||
body: {
|
body: {
|
||||||
id: authenticationProviders[0].id,
|
id: authenticationProviders[0].id,
|
||||||
isEnabled: false,
|
isEnabled: false,
|
||||||
token: user.getJwtToken(),
|
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
expect(res.status).toEqual(403);
|
expect(res.status).toEqual(403);
|
||||||
@@ -135,11 +130,7 @@ describe("#authenticationProviders.list", () => {
|
|||||||
const user = await buildAdmin({
|
const user = await buildAdmin({
|
||||||
teamId: team.id,
|
teamId: team.id,
|
||||||
});
|
});
|
||||||
const res = await server.post("/api/authenticationProviders.list", {
|
const res = await server.post("/api/authenticationProviders.list", user);
|
||||||
body: {
|
|
||||||
token: user.getJwtToken(),
|
|
||||||
},
|
|
||||||
});
|
|
||||||
const body = await res.json();
|
const body = await res.json();
|
||||||
expect(res.status).toEqual(200);
|
expect(res.status).toEqual(200);
|
||||||
expect(body.data.length).toBe(3);
|
expect(body.data.length).toBe(3);
|
||||||
@@ -170,10 +161,9 @@ describe("#authenticationProviders.delete", () => {
|
|||||||
name: "google",
|
name: "google",
|
||||||
providerId: randomUUID(),
|
providerId: randomUUID(),
|
||||||
});
|
});
|
||||||
const res = await server.post("/api/authenticationProviders.delete", {
|
const res = await server.post("/api/authenticationProviders.delete", user, {
|
||||||
body: {
|
body: {
|
||||||
id: googleProvider.id,
|
id: googleProvider.id,
|
||||||
token: user.getJwtToken(),
|
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
expect(res.status).toEqual(200);
|
expect(res.status).toEqual(200);
|
||||||
@@ -191,10 +181,9 @@ describe("#authenticationProviders.delete", () => {
|
|||||||
name: "google",
|
name: "google",
|
||||||
providerId: randomUUID(),
|
providerId: randomUUID(),
|
||||||
});
|
});
|
||||||
const res = await server.post("/api/authenticationProviders.delete", {
|
const res = await server.post("/api/authenticationProviders.delete", user, {
|
||||||
body: {
|
body: {
|
||||||
id: googleProvider.id,
|
id: googleProvider.id,
|
||||||
token: user.getJwtToken(),
|
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
expect(res.status).toEqual(200);
|
expect(res.status).toEqual(200);
|
||||||
@@ -213,10 +202,9 @@ describe("#authenticationProviders.delete", () => {
|
|||||||
name: "google",
|
name: "google",
|
||||||
providerId: randomUUID(),
|
providerId: randomUUID(),
|
||||||
});
|
});
|
||||||
const res = await server.post("/api/authenticationProviders.delete", {
|
const res = await server.post("/api/authenticationProviders.delete", user, {
|
||||||
body: {
|
body: {
|
||||||
id: googleProvider.id,
|
id: googleProvider.id,
|
||||||
token: user.getJwtToken(),
|
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
expect(res.status).toEqual(403);
|
expect(res.status).toEqual(403);
|
||||||
|
|||||||
@@ -27,11 +27,7 @@ describe("#collections.list", () => {
|
|||||||
userId: user.id,
|
userId: user.id,
|
||||||
teamId: team.id,
|
teamId: team.id,
|
||||||
});
|
});
|
||||||
const res = await server.post("/api/collections.list", {
|
const res = await server.post("/api/collections.list", user);
|
||||||
body: {
|
|
||||||
token: user.getJwtToken(),
|
|
||||||
},
|
|
||||||
});
|
|
||||||
const body = await res.json();
|
const body = await res.json();
|
||||||
expect(res.status).toEqual(200);
|
expect(res.status).toEqual(200);
|
||||||
expect(body.data.length).toEqual(1);
|
expect(body.data.length).toEqual(1);
|
||||||
@@ -47,9 +43,8 @@ describe("#collections.list", () => {
|
|||||||
teamId: team.id,
|
teamId: team.id,
|
||||||
archivedAt: new Date(),
|
archivedAt: new Date(),
|
||||||
});
|
});
|
||||||
const res = await server.post("/api/collections.list", {
|
const res = await server.post("/api/collections.list", admin, {
|
||||||
body: {
|
body: {
|
||||||
token: admin.getJwtToken(),
|
|
||||||
statusFilter: [CollectionStatusFilter.Archived],
|
statusFilter: [CollectionStatusFilter.Archived],
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
@@ -68,11 +63,7 @@ describe("#collections.list", () => {
|
|||||||
teamId: team.id,
|
teamId: team.id,
|
||||||
archivedAt: new Date(),
|
archivedAt: new Date(),
|
||||||
});
|
});
|
||||||
const res = await server.post("/api/collections.list", {
|
const res = await server.post("/api/collections.list", admin);
|
||||||
body: {
|
|
||||||
token: admin.getJwtToken(),
|
|
||||||
},
|
|
||||||
});
|
|
||||||
const body = await res.json();
|
const body = await res.json();
|
||||||
expect(res.status).toEqual(200);
|
expect(res.status).toEqual(200);
|
||||||
expect(body.data).toHaveLength(0);
|
expect(body.data).toHaveLength(0);
|
||||||
@@ -89,11 +80,7 @@ describe("#collections.list", () => {
|
|||||||
permission: null,
|
permission: null,
|
||||||
teamId: user.teamId,
|
teamId: user.teamId,
|
||||||
});
|
});
|
||||||
const res = await server.post("/api/collections.list", {
|
const res = await server.post("/api/collections.list", user);
|
||||||
body: {
|
|
||||||
token: user.getJwtToken(),
|
|
||||||
},
|
|
||||||
});
|
|
||||||
const body = await res.json();
|
const body = await res.json();
|
||||||
expect(res.status).toEqual(200);
|
expect(res.status).toEqual(200);
|
||||||
expect(body.data.length).toEqual(1);
|
expect(body.data.length).toEqual(1);
|
||||||
@@ -112,11 +99,7 @@ describe("#collections.list", () => {
|
|||||||
teamId: user.teamId,
|
teamId: user.teamId,
|
||||||
userId: user.id,
|
userId: user.id,
|
||||||
});
|
});
|
||||||
const res = await server.post("/api/collections.list", {
|
const res = await server.post("/api/collections.list", user);
|
||||||
body: {
|
|
||||||
token: user.getJwtToken(),
|
|
||||||
},
|
|
||||||
});
|
|
||||||
const body = await res.json();
|
const body = await res.json();
|
||||||
expect(res.status).toEqual(200);
|
expect(res.status).toEqual(200);
|
||||||
expect(body.data.length).toEqual(2);
|
expect(body.data.length).toEqual(2);
|
||||||
@@ -149,11 +132,7 @@ describe("#collections.list", () => {
|
|||||||
createdById: user.id,
|
createdById: user.id,
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
const res = await server.post("/api/collections.list", {
|
const res = await server.post("/api/collections.list", user);
|
||||||
body: {
|
|
||||||
token: user.getJwtToken(),
|
|
||||||
},
|
|
||||||
});
|
|
||||||
const body = await res.json();
|
const body = await res.json();
|
||||||
expect(res.status).toEqual(200);
|
expect(res.status).toEqual(200);
|
||||||
expect(body.data.length).toEqual(2);
|
expect(body.data.length).toEqual(2);
|
||||||
@@ -169,11 +148,7 @@ describe("#collections.list", () => {
|
|||||||
teamId: team.id,
|
teamId: team.id,
|
||||||
archivedAt: new Date(),
|
archivedAt: new Date(),
|
||||||
});
|
});
|
||||||
const res = await server.post("/api/collections.list", {
|
const res = await server.post("/api/collections.list", user);
|
||||||
body: {
|
|
||||||
token: user.getJwtToken(),
|
|
||||||
},
|
|
||||||
});
|
|
||||||
const body = await res.json();
|
const body = await res.json();
|
||||||
expect(res.status).toEqual(200);
|
expect(res.status).toEqual(200);
|
||||||
expect(body.data.length).toEqual(0);
|
expect(body.data.length).toEqual(0);
|
||||||
@@ -187,30 +162,21 @@ describe("#collections.list", () => {
|
|||||||
teamId: team.id,
|
teamId: team.id,
|
||||||
});
|
});
|
||||||
|
|
||||||
const beforeArchiveRes = await server.post("/api/collections.list", {
|
const beforeArchiveRes = await server.post("/api/collections.list", user);
|
||||||
body: {
|
|
||||||
token: user.getJwtToken(),
|
|
||||||
},
|
|
||||||
});
|
|
||||||
const beforeArchiveBody = await beforeArchiveRes.json();
|
const beforeArchiveBody = await beforeArchiveRes.json();
|
||||||
expect(beforeArchiveRes.status).toEqual(200);
|
expect(beforeArchiveRes.status).toEqual(200);
|
||||||
expect(beforeArchiveBody.data).toHaveLength(1);
|
expect(beforeArchiveBody.data).toHaveLength(1);
|
||||||
expect(beforeArchiveBody.data[0].id).toEqual(collection.id);
|
expect(beforeArchiveBody.data[0].id).toEqual(collection.id);
|
||||||
|
|
||||||
const archiveRes = await server.post("/api/collections.archive", {
|
const archiveRes = await server.post("/api/collections.archive", user, {
|
||||||
body: {
|
body: {
|
||||||
token: user.getJwtToken(),
|
|
||||||
id: collection.id,
|
id: collection.id,
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
|
|
||||||
expect(archiveRes.status).toEqual(200);
|
expect(archiveRes.status).toEqual(200);
|
||||||
|
|
||||||
const afterArchiveRes = await server.post("/api/collections.list", {
|
const afterArchiveRes = await server.post("/api/collections.list", user);
|
||||||
body: {
|
|
||||||
token: user.getJwtToken(),
|
|
||||||
},
|
|
||||||
});
|
|
||||||
|
|
||||||
const afterArchiveBody = await afterArchiveRes.json();
|
const afterArchiveBody = await afterArchiveRes.json();
|
||||||
expect(afterArchiveRes.status).toEqual(200);
|
expect(afterArchiveRes.status).toEqual(200);
|
||||||
@@ -221,11 +187,7 @@ describe("#collections.list", () => {
|
|||||||
describe("#collections.import", () => {
|
describe("#collections.import", () => {
|
||||||
it("should error if no attachmentId is passed", async () => {
|
it("should error if no attachmentId is passed", async () => {
|
||||||
const user = await buildUser();
|
const user = await buildUser();
|
||||||
const res = await server.post("/api/collections.import", {
|
const res = await server.post("/api/collections.import", user);
|
||||||
body: {
|
|
||||||
token: user.getJwtToken(),
|
|
||||||
},
|
|
||||||
});
|
|
||||||
expect(res.status).toEqual(400);
|
expect(res.status).toEqual(400);
|
||||||
});
|
});
|
||||||
|
|
||||||
@@ -248,9 +210,8 @@ describe("#collections.move", () => {
|
|||||||
it("should require authorization", async () => {
|
it("should require authorization", async () => {
|
||||||
const user = await buildUser();
|
const user = await buildUser();
|
||||||
const collection = await buildCollection();
|
const collection = await buildCollection();
|
||||||
const res = await server.post("/api/collections.move", {
|
const res = await server.post("/api/collections.move", user, {
|
||||||
body: {
|
body: {
|
||||||
token: user.getJwtToken(),
|
|
||||||
id: collection.id,
|
id: collection.id,
|
||||||
index: "P",
|
index: "P",
|
||||||
},
|
},
|
||||||
@@ -262,9 +223,8 @@ describe("#collections.move", () => {
|
|||||||
const team = await buildTeam();
|
const team = await buildTeam();
|
||||||
const admin = await buildAdmin({ teamId: team.id });
|
const admin = await buildAdmin({ teamId: team.id });
|
||||||
const collection = await buildCollection({ teamId: team.id });
|
const collection = await buildCollection({ teamId: team.id });
|
||||||
const res = await server.post("/api/collections.move", {
|
const res = await server.post("/api/collections.move", admin, {
|
||||||
body: {
|
body: {
|
||||||
token: admin.getJwtToken(),
|
|
||||||
id: collection.id,
|
id: collection.id,
|
||||||
index: "P",
|
index: "P",
|
||||||
icon: "flame",
|
icon: "flame",
|
||||||
@@ -279,9 +239,8 @@ describe("#collections.move", () => {
|
|||||||
const team = await buildTeam();
|
const team = await buildTeam();
|
||||||
const admin = await buildAdmin({ teamId: team.id });
|
const admin = await buildAdmin({ teamId: team.id });
|
||||||
const collection = await buildCollection({ teamId: team.id });
|
const collection = await buildCollection({ teamId: team.id });
|
||||||
const res = await server.post("/api/collections.move", {
|
const res = await server.post("/api/collections.move", admin, {
|
||||||
body: {
|
body: {
|
||||||
token: admin.getJwtToken(),
|
|
||||||
id: collection.id,
|
id: collection.id,
|
||||||
index: "P",
|
index: "P",
|
||||||
icon: "😁",
|
icon: "😁",
|
||||||
@@ -296,9 +255,8 @@ describe("#collections.move", () => {
|
|||||||
const team = await buildTeam();
|
const team = await buildTeam();
|
||||||
const admin = await buildAdmin({ teamId: team.id });
|
const admin = await buildAdmin({ teamId: team.id });
|
||||||
const collection = await buildCollection({ teamId: team.id });
|
const collection = await buildCollection({ teamId: team.id });
|
||||||
const res = await server.post("/api/collections.move", {
|
const res = await server.post("/api/collections.move", admin, {
|
||||||
body: {
|
body: {
|
||||||
token: admin.getJwtToken(),
|
|
||||||
id: collection.id,
|
id: collection.id,
|
||||||
icon: "nonsRence",
|
icon: "nonsRence",
|
||||||
},
|
},
|
||||||
@@ -310,9 +268,8 @@ describe("#collections.move", () => {
|
|||||||
const team = await buildTeam();
|
const team = await buildTeam();
|
||||||
const admin = await buildAdmin({ teamId: team.id });
|
const admin = await buildAdmin({ teamId: team.id });
|
||||||
const collection = await buildCollection({ teamId: team.id });
|
const collection = await buildCollection({ teamId: team.id });
|
||||||
const res = await server.post("/api/collections.move", {
|
const res = await server.post("/api/collections.move", admin, {
|
||||||
body: {
|
body: {
|
||||||
token: admin.getJwtToken(),
|
|
||||||
id: collection.id,
|
id: collection.id,
|
||||||
index: "يونيكود",
|
index: "يونيكود",
|
||||||
},
|
},
|
||||||
@@ -330,9 +287,9 @@ describe("#collections.move", () => {
|
|||||||
});
|
});
|
||||||
const createdCollectionResponse = await server.post(
|
const createdCollectionResponse = await server.post(
|
||||||
"/api/collections.create",
|
"/api/collections.create",
|
||||||
|
user,
|
||||||
{
|
{
|
||||||
body: {
|
body: {
|
||||||
token: user.getJwtToken(),
|
|
||||||
name: "Test",
|
name: "Test",
|
||||||
sharing: false,
|
sharing: false,
|
||||||
index: "Q",
|
index: "Q",
|
||||||
@@ -340,13 +297,16 @@ describe("#collections.move", () => {
|
|||||||
}
|
}
|
||||||
);
|
);
|
||||||
await createdCollectionResponse.json();
|
await createdCollectionResponse.json();
|
||||||
const movedCollectionRes = await server.post("/api/collections.move", {
|
const movedCollectionRes = await server.post(
|
||||||
body: {
|
"/api/collections.move",
|
||||||
token: admin.getJwtToken(),
|
admin,
|
||||||
id: collection.id,
|
{
|
||||||
index: "Q",
|
body: {
|
||||||
},
|
id: collection.id,
|
||||||
});
|
index: "Q",
|
||||||
|
},
|
||||||
|
}
|
||||||
|
);
|
||||||
const movedCollection = await movedCollectionRes.json();
|
const movedCollection = await movedCollectionRes.json();
|
||||||
expect(movedCollectionRes.status).toEqual(200);
|
expect(movedCollectionRes.status).toEqual(200);
|
||||||
expect(movedCollection.success).toBe(true);
|
expect(movedCollection.success).toBe(true);
|
||||||
@@ -360,9 +320,9 @@ describe("#collections.move", () => {
|
|||||||
const user = await buildUser({ teamId: team.id });
|
const user = await buildUser({ teamId: team.id });
|
||||||
const createdCollectionAResponse = await server.post(
|
const createdCollectionAResponse = await server.post(
|
||||||
"/api/collections.create",
|
"/api/collections.create",
|
||||||
|
user,
|
||||||
{
|
{
|
||||||
body: {
|
body: {
|
||||||
token: user.getJwtToken(),
|
|
||||||
name: "A",
|
name: "A",
|
||||||
sharing: false,
|
sharing: false,
|
||||||
index: "a",
|
index: "a",
|
||||||
@@ -371,9 +331,9 @@ describe("#collections.move", () => {
|
|||||||
);
|
);
|
||||||
const createdCollectionBResponse = await server.post(
|
const createdCollectionBResponse = await server.post(
|
||||||
"/api/collections.create",
|
"/api/collections.create",
|
||||||
|
user,
|
||||||
{
|
{
|
||||||
body: {
|
body: {
|
||||||
token: user.getJwtToken(),
|
|
||||||
name: "B",
|
name: "B",
|
||||||
sharing: false,
|
sharing: false,
|
||||||
index: "b",
|
index: "b",
|
||||||
@@ -382,9 +342,9 @@ describe("#collections.move", () => {
|
|||||||
);
|
);
|
||||||
const createdCollectionCResponse = await server.post(
|
const createdCollectionCResponse = await server.post(
|
||||||
"/api/collections.create",
|
"/api/collections.create",
|
||||||
|
user,
|
||||||
{
|
{
|
||||||
body: {
|
body: {
|
||||||
token: user.getJwtToken(),
|
|
||||||
name: "C",
|
name: "C",
|
||||||
sharing: false,
|
sharing: false,
|
||||||
index: "c",
|
index: "c",
|
||||||
@@ -396,9 +356,9 @@ describe("#collections.move", () => {
|
|||||||
const createdCollectionC = await createdCollectionCResponse.json();
|
const createdCollectionC = await createdCollectionCResponse.json();
|
||||||
const movedCollectionCResponse = await server.post(
|
const movedCollectionCResponse = await server.post(
|
||||||
"/api/collections.move",
|
"/api/collections.move",
|
||||||
|
admin,
|
||||||
{
|
{
|
||||||
body: {
|
body: {
|
||||||
token: admin.getJwtToken(),
|
|
||||||
id: createdCollectionC.data.id,
|
id: createdCollectionC.data.id,
|
||||||
index: "a",
|
index: "a",
|
||||||
},
|
},
|
||||||
@@ -420,9 +380,8 @@ describe("#collections.export", () => {
|
|||||||
permission: null,
|
permission: null,
|
||||||
teamId: user.teamId,
|
teamId: user.teamId,
|
||||||
});
|
});
|
||||||
const res = await server.post("/api/collections.export", {
|
const res = await server.post("/api/collections.export", user, {
|
||||||
body: {
|
body: {
|
||||||
token: user.getJwtToken(),
|
|
||||||
id: collection.id,
|
id: collection.id,
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
@@ -441,9 +400,8 @@ describe("#collections.export", () => {
|
|||||||
userId: admin.id,
|
userId: admin.id,
|
||||||
permission: CollectionPermission.ReadWrite,
|
permission: CollectionPermission.ReadWrite,
|
||||||
});
|
});
|
||||||
const res = await server.post("/api/collections.export", {
|
const res = await server.post("/api/collections.export", admin, {
|
||||||
body: {
|
body: {
|
||||||
token: admin.getJwtToken(),
|
|
||||||
id: collection.id,
|
id: collection.id,
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
@@ -470,9 +428,8 @@ describe("#collections.export", () => {
|
|||||||
createdById: admin.id,
|
createdById: admin.id,
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
const res = await server.post("/api/collections.export", {
|
const res = await server.post("/api/collections.export", admin, {
|
||||||
body: {
|
body: {
|
||||||
token: admin.getJwtToken(),
|
|
||||||
id: collection.id,
|
id: collection.id,
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
@@ -493,9 +450,8 @@ describe("#collections.export", () => {
|
|||||||
userId: admin.id,
|
userId: admin.id,
|
||||||
teamId: admin.teamId,
|
teamId: admin.teamId,
|
||||||
});
|
});
|
||||||
const res = await server.post("/api/collections.export", {
|
const res = await server.post("/api/collections.export", user, {
|
||||||
body: {
|
body: {
|
||||||
token: user.getJwtToken(),
|
|
||||||
id: collection.id,
|
id: collection.id,
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
@@ -507,9 +463,8 @@ describe("#collections.export", () => {
|
|||||||
const collection = await buildCollection({
|
const collection = await buildCollection({
|
||||||
teamId: admin.teamId,
|
teamId: admin.teamId,
|
||||||
});
|
});
|
||||||
const res = await server.post("/api/collections.export", {
|
const res = await server.post("/api/collections.export", admin, {
|
||||||
body: {
|
body: {
|
||||||
token: admin.getJwtToken(),
|
|
||||||
id: collection.id,
|
id: collection.id,
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
@@ -530,21 +485,13 @@ describe("#collections.export_all", () => {
|
|||||||
|
|
||||||
it("should require authorization", async () => {
|
it("should require authorization", async () => {
|
||||||
const user = await buildUser();
|
const user = await buildUser();
|
||||||
const res = await server.post("/api/collections.export_all", {
|
const res = await server.post("/api/collections.export_all", user);
|
||||||
body: {
|
|
||||||
token: user.getJwtToken(),
|
|
||||||
},
|
|
||||||
});
|
|
||||||
expect(res.status).toEqual(403);
|
expect(res.status).toEqual(403);
|
||||||
});
|
});
|
||||||
|
|
||||||
it("should return success", async () => {
|
it("should return success", async () => {
|
||||||
const admin = await buildAdmin();
|
const admin = await buildAdmin();
|
||||||
const res = await server.post("/api/collections.export_all", {
|
const res = await server.post("/api/collections.export_all", admin);
|
||||||
body: {
|
|
||||||
token: admin.getJwtToken(),
|
|
||||||
},
|
|
||||||
});
|
|
||||||
expect(res.status).toEqual(200);
|
expect(res.status).toEqual(200);
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
@@ -566,9 +513,8 @@ describe("#collections.add_user", () => {
|
|||||||
userId: user.id,
|
userId: user.id,
|
||||||
permission: CollectionPermission.Admin,
|
permission: CollectionPermission.Admin,
|
||||||
});
|
});
|
||||||
const res = await server.post("/api/collections.add_user", {
|
const res = await server.post("/api/collections.add_user", user, {
|
||||||
body: {
|
body: {
|
||||||
token: user.getJwtToken(),
|
|
||||||
id: collection.id,
|
id: collection.id,
|
||||||
userId: anotherUser.id,
|
userId: anotherUser.id,
|
||||||
},
|
},
|
||||||
@@ -588,9 +534,8 @@ describe("#collections.add_user", () => {
|
|||||||
const anotherUser = await buildUser({
|
const anotherUser = await buildUser({
|
||||||
teamId: admin.teamId,
|
teamId: admin.teamId,
|
||||||
});
|
});
|
||||||
const res = await server.post("/api/collections.add_user", {
|
const res = await server.post("/api/collections.add_user", admin, {
|
||||||
body: {
|
body: {
|
||||||
token: admin.getJwtToken(),
|
|
||||||
id: collection.id,
|
id: collection.id,
|
||||||
userId: anotherUser.id,
|
userId: anotherUser.id,
|
||||||
},
|
},
|
||||||
@@ -606,9 +551,8 @@ describe("#collections.add_user", () => {
|
|||||||
teamId: user.teamId,
|
teamId: user.teamId,
|
||||||
permission: null,
|
permission: null,
|
||||||
});
|
});
|
||||||
const res = await server.post("/api/collections.add_user", {
|
const res = await server.post("/api/collections.add_user", user, {
|
||||||
body: {
|
body: {
|
||||||
token: user.getJwtToken(),
|
|
||||||
id: collection.id,
|
id: collection.id,
|
||||||
userId: user.id,
|
userId: user.id,
|
||||||
},
|
},
|
||||||
@@ -625,9 +569,8 @@ describe("#collections.add_user", () => {
|
|||||||
permission: null,
|
permission: null,
|
||||||
});
|
});
|
||||||
const anotherUser = await buildUser();
|
const anotherUser = await buildUser();
|
||||||
const res = await server.post("/api/collections.add_user", {
|
const res = await server.post("/api/collections.add_user", user, {
|
||||||
body: {
|
body: {
|
||||||
token: user.getJwtToken(),
|
|
||||||
id: collection.id,
|
id: collection.id,
|
||||||
userId: anotherUser.id,
|
userId: anotherUser.id,
|
||||||
},
|
},
|
||||||
@@ -648,9 +591,8 @@ describe("#collections.add_user", () => {
|
|||||||
const anotherUser = await buildUser({
|
const anotherUser = await buildUser({
|
||||||
teamId: user.teamId,
|
teamId: user.teamId,
|
||||||
});
|
});
|
||||||
const res = await server.post("/api/collections.add_user", {
|
const res = await server.post("/api/collections.add_user", user, {
|
||||||
body: {
|
body: {
|
||||||
token: user.getJwtToken(),
|
|
||||||
id: collection.id,
|
id: collection.id,
|
||||||
userId: anotherUser.id,
|
userId: anotherUser.id,
|
||||||
},
|
},
|
||||||
@@ -670,9 +612,8 @@ describe("#collections.add_group", () => {
|
|||||||
const group = await buildGroup({
|
const group = await buildGroup({
|
||||||
teamId: user.teamId,
|
teamId: user.teamId,
|
||||||
});
|
});
|
||||||
const res = await server.post("/api/collections.add_group", {
|
const res = await server.post("/api/collections.add_group", user, {
|
||||||
body: {
|
body: {
|
||||||
token: user.getJwtToken(),
|
|
||||||
id: collection.id,
|
id: collection.id,
|
||||||
groupId: group.id,
|
groupId: group.id,
|
||||||
},
|
},
|
||||||
@@ -692,9 +633,8 @@ describe("#collections.add_group", () => {
|
|||||||
const group = await buildGroup({
|
const group = await buildGroup({
|
||||||
teamId: user.teamId,
|
teamId: user.teamId,
|
||||||
});
|
});
|
||||||
const res = await server.post("/api/collections.add_group", {
|
const res = await server.post("/api/collections.add_group", user, {
|
||||||
body: {
|
body: {
|
||||||
token: user.getJwtToken(),
|
|
||||||
id: collection.id,
|
id: collection.id,
|
||||||
groupId: group.id,
|
groupId: group.id,
|
||||||
permission: null,
|
permission: null,
|
||||||
@@ -715,9 +655,8 @@ describe("#collections.add_group", () => {
|
|||||||
permission: null,
|
permission: null,
|
||||||
});
|
});
|
||||||
const group = await buildGroup();
|
const group = await buildGroup();
|
||||||
const res = await server.post("/api/collections.add_group", {
|
const res = await server.post("/api/collections.add_group", user, {
|
||||||
body: {
|
body: {
|
||||||
token: user.getJwtToken(),
|
|
||||||
id: collection.id,
|
id: collection.id,
|
||||||
groupId: group.id,
|
groupId: group.id,
|
||||||
},
|
},
|
||||||
@@ -738,9 +677,8 @@ describe("#collections.add_group", () => {
|
|||||||
const group = await buildGroup({
|
const group = await buildGroup({
|
||||||
teamId: user.teamId,
|
teamId: user.teamId,
|
||||||
});
|
});
|
||||||
const res = await server.post("/api/collections.add_group", {
|
const res = await server.post("/api/collections.add_group", user, {
|
||||||
body: {
|
body: {
|
||||||
token: user.getJwtToken(),
|
|
||||||
id: collection.id,
|
id: collection.id,
|
||||||
groupId: group.id,
|
groupId: group.id,
|
||||||
},
|
},
|
||||||
@@ -760,18 +698,16 @@ describe("#collections.remove_group", () => {
|
|||||||
const group = await buildGroup({
|
const group = await buildGroup({
|
||||||
teamId: user.teamId,
|
teamId: user.teamId,
|
||||||
});
|
});
|
||||||
await server.post("/api/collections.add_group", {
|
await server.post("/api/collections.add_group", user, {
|
||||||
body: {
|
body: {
|
||||||
token: user.getJwtToken(),
|
|
||||||
id: collection.id,
|
id: collection.id,
|
||||||
groupId: group.id,
|
groupId: group.id,
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
let groups = await collection.$get("groups");
|
let groups = await collection.$get("groups");
|
||||||
expect(groups.length).toEqual(1);
|
expect(groups.length).toEqual(1);
|
||||||
const res = await server.post("/api/collections.remove_group", {
|
const res = await server.post("/api/collections.remove_group", user, {
|
||||||
body: {
|
body: {
|
||||||
token: user.getJwtToken(),
|
|
||||||
id: collection.id,
|
id: collection.id,
|
||||||
groupId: group.id,
|
groupId: group.id,
|
||||||
},
|
},
|
||||||
@@ -788,9 +724,8 @@ describe("#collections.remove_group", () => {
|
|||||||
permission: null,
|
permission: null,
|
||||||
});
|
});
|
||||||
const group = await buildGroup();
|
const group = await buildGroup();
|
||||||
const res = await server.post("/api/collections.remove_group", {
|
const res = await server.post("/api/collections.remove_group", user, {
|
||||||
body: {
|
body: {
|
||||||
token: user.getJwtToken(),
|
|
||||||
id: collection.id,
|
id: collection.id,
|
||||||
groupId: group.id,
|
groupId: group.id,
|
||||||
},
|
},
|
||||||
@@ -811,9 +746,8 @@ describe("#collections.remove_group", () => {
|
|||||||
const group = await buildGroup({
|
const group = await buildGroup({
|
||||||
teamId: user.teamId,
|
teamId: user.teamId,
|
||||||
});
|
});
|
||||||
const res = await server.post("/api/collections.remove_group", {
|
const res = await server.post("/api/collections.remove_group", user, {
|
||||||
body: {
|
body: {
|
||||||
token: user.getJwtToken(),
|
|
||||||
id: collection.id,
|
id: collection.id,
|
||||||
groupId: group.id,
|
groupId: group.id,
|
||||||
},
|
},
|
||||||
@@ -833,16 +767,14 @@ describe("#collections.remove_user", () => {
|
|||||||
const anotherUser = await buildUser({
|
const anotherUser = await buildUser({
|
||||||
teamId: admin.teamId,
|
teamId: admin.teamId,
|
||||||
});
|
});
|
||||||
await server.post("/api/collections.add_user", {
|
await server.post("/api/collections.add_user", admin, {
|
||||||
body: {
|
body: {
|
||||||
token: admin.getJwtToken(),
|
|
||||||
id: collection.id,
|
id: collection.id,
|
||||||
userId: anotherUser.id,
|
userId: anotherUser.id,
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
const res = await server.post("/api/collections.remove_user", {
|
const res = await server.post("/api/collections.remove_user", admin, {
|
||||||
body: {
|
body: {
|
||||||
token: admin.getJwtToken(),
|
|
||||||
id: collection.id,
|
id: collection.id,
|
||||||
userId: anotherUser.id,
|
userId: anotherUser.id,
|
||||||
},
|
},
|
||||||
@@ -862,9 +794,8 @@ describe("#collections.remove_user", () => {
|
|||||||
const nonMember = await buildUser({
|
const nonMember = await buildUser({
|
||||||
teamId: admin.teamId,
|
teamId: admin.teamId,
|
||||||
});
|
});
|
||||||
const res = await server.post("/api/collections.remove_user", {
|
const res = await server.post("/api/collections.remove_user", admin, {
|
||||||
body: {
|
body: {
|
||||||
token: admin.getJwtToken(),
|
|
||||||
id: collection.id,
|
id: collection.id,
|
||||||
userId: nonMember.id,
|
userId: nonMember.id,
|
||||||
},
|
},
|
||||||
@@ -881,9 +812,8 @@ describe("#collections.remove_user", () => {
|
|||||||
permission: null,
|
permission: null,
|
||||||
});
|
});
|
||||||
const anotherUser = await buildUser();
|
const anotherUser = await buildUser();
|
||||||
const res = await server.post("/api/collections.remove_user", {
|
const res = await server.post("/api/collections.remove_user", user, {
|
||||||
body: {
|
body: {
|
||||||
token: user.getJwtToken(),
|
|
||||||
id: collection.id,
|
id: collection.id,
|
||||||
userId: anotherUser.id,
|
userId: anotherUser.id,
|
||||||
},
|
},
|
||||||
@@ -904,9 +834,8 @@ describe("#collections.remove_user", () => {
|
|||||||
const anotherUser = await buildUser({
|
const anotherUser = await buildUser({
|
||||||
teamId: user.teamId,
|
teamId: user.teamId,
|
||||||
});
|
});
|
||||||
const res = await server.post("/api/collections.remove_user", {
|
const res = await server.post("/api/collections.remove_user", user, {
|
||||||
body: {
|
body: {
|
||||||
token: user.getJwtToken(),
|
|
||||||
id: collection.id,
|
id: collection.id,
|
||||||
userId: anotherUser.id,
|
userId: anotherUser.id,
|
||||||
},
|
},
|
||||||
@@ -937,9 +866,8 @@ describe("#collections.group_memberships", () => {
|
|||||||
groupId: group.id,
|
groupId: group.id,
|
||||||
permission: CollectionPermission.ReadWrite,
|
permission: CollectionPermission.ReadWrite,
|
||||||
});
|
});
|
||||||
const res = await server.post("/api/collections.group_memberships", {
|
const res = await server.post("/api/collections.group_memberships", user, {
|
||||||
body: {
|
body: {
|
||||||
token: user.getJwtToken(),
|
|
||||||
id: collection.id,
|
id: collection.id,
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
@@ -987,9 +915,8 @@ describe("#collections.group_memberships", () => {
|
|||||||
groupId: group2.id,
|
groupId: group2.id,
|
||||||
permission: CollectionPermission.ReadWrite,
|
permission: CollectionPermission.ReadWrite,
|
||||||
});
|
});
|
||||||
const res = await server.post("/api/collections.group_memberships", {
|
const res = await server.post("/api/collections.group_memberships", user, {
|
||||||
body: {
|
body: {
|
||||||
token: user.getJwtToken(),
|
|
||||||
id: collection.id,
|
id: collection.id,
|
||||||
query: "will",
|
query: "will",
|
||||||
},
|
},
|
||||||
@@ -1030,9 +957,8 @@ describe("#collections.group_memberships", () => {
|
|||||||
groupId: group2.id,
|
groupId: group2.id,
|
||||||
permission: CollectionPermission.Read,
|
permission: CollectionPermission.Read,
|
||||||
});
|
});
|
||||||
const res = await server.post("/api/collections.group_memberships", {
|
const res = await server.post("/api/collections.group_memberships", user, {
|
||||||
body: {
|
body: {
|
||||||
token: user.getJwtToken(),
|
|
||||||
id: collection.id,
|
id: collection.id,
|
||||||
permission: CollectionPermission.Read,
|
permission: CollectionPermission.Read,
|
||||||
},
|
},
|
||||||
@@ -1056,9 +982,8 @@ describe("#collections.group_memberships", () => {
|
|||||||
permission: null,
|
permission: null,
|
||||||
teamId: user.teamId,
|
teamId: user.teamId,
|
||||||
});
|
});
|
||||||
const res = await server.post("/api/collections.group_memberships", {
|
const res = await server.post("/api/collections.group_memberships", user, {
|
||||||
body: {
|
body: {
|
||||||
token: user.getJwtToken(),
|
|
||||||
id: collection.id,
|
id: collection.id,
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
@@ -1077,9 +1002,8 @@ describe("#collections.memberships", () => {
|
|||||||
collection.permission = null;
|
collection.permission = null;
|
||||||
await collection.save();
|
await collection.save();
|
||||||
|
|
||||||
const res = await server.post("/api/collections.memberships", {
|
const res = await server.post("/api/collections.memberships", user, {
|
||||||
body: {
|
body: {
|
||||||
token: user.getJwtToken(),
|
|
||||||
id: collection.id,
|
id: collection.id,
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
@@ -1111,9 +1035,8 @@ describe("#collections.memberships", () => {
|
|||||||
userId: user2.id,
|
userId: user2.id,
|
||||||
permission: CollectionPermission.ReadWrite,
|
permission: CollectionPermission.ReadWrite,
|
||||||
});
|
});
|
||||||
const res = await server.post("/api/collections.memberships", {
|
const res = await server.post("/api/collections.memberships", user, {
|
||||||
body: {
|
body: {
|
||||||
token: user.getJwtToken(),
|
|
||||||
id: collection.id,
|
id: collection.id,
|
||||||
query: user.name.slice(0, 3),
|
query: user.name.slice(0, 3),
|
||||||
},
|
},
|
||||||
@@ -1144,9 +1067,8 @@ describe("#collections.memberships", () => {
|
|||||||
userId: user2.id,
|
userId: user2.id,
|
||||||
permission: CollectionPermission.Read,
|
permission: CollectionPermission.Read,
|
||||||
});
|
});
|
||||||
const res = await server.post("/api/collections.memberships", {
|
const res = await server.post("/api/collections.memberships", user, {
|
||||||
body: {
|
body: {
|
||||||
token: user.getJwtToken(),
|
|
||||||
id: collection.id,
|
id: collection.id,
|
||||||
permission: CollectionPermission.Read,
|
permission: CollectionPermission.Read,
|
||||||
},
|
},
|
||||||
@@ -1167,9 +1089,8 @@ describe("#collections.memberships", () => {
|
|||||||
it("should require authorization", async () => {
|
it("should require authorization", async () => {
|
||||||
const collection = await buildCollection();
|
const collection = await buildCollection();
|
||||||
const user = await buildUser();
|
const user = await buildUser();
|
||||||
const res = await server.post("/api/collections.memberships", {
|
const res = await server.post("/api/collections.memberships", user, {
|
||||||
body: {
|
body: {
|
||||||
token: user.getJwtToken(),
|
|
||||||
id: collection.id,
|
id: collection.id,
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
@@ -1187,9 +1108,8 @@ describe("#collections.info", () => {
|
|||||||
archivedAt: new Date(),
|
archivedAt: new Date(),
|
||||||
archivedById: user.id,
|
archivedById: user.id,
|
||||||
});
|
});
|
||||||
const res = await server.post("/api/collections.info", {
|
const res = await server.post("/api/collections.info", user, {
|
||||||
body: {
|
body: {
|
||||||
token: user.getJwtToken(),
|
|
||||||
id: collection.id,
|
id: collection.id,
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
@@ -1205,9 +1125,8 @@ describe("#collections.info", () => {
|
|||||||
userId: user.id,
|
userId: user.id,
|
||||||
teamId: team.id,
|
teamId: team.id,
|
||||||
});
|
});
|
||||||
const res = await server.post("/api/collections.info", {
|
const res = await server.post("/api/collections.info", user, {
|
||||||
body: {
|
body: {
|
||||||
token: user.getJwtToken(),
|
|
||||||
id: collection.id,
|
id: collection.id,
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
@@ -1223,9 +1142,8 @@ describe("#collections.info", () => {
|
|||||||
userId: user.id,
|
userId: user.id,
|
||||||
teamId: team.id,
|
teamId: team.id,
|
||||||
});
|
});
|
||||||
const res = await server.post("/api/collections.info", {
|
const res = await server.post("/api/collections.info", user, {
|
||||||
body: {
|
body: {
|
||||||
token: user.getJwtToken(),
|
|
||||||
id: `any-slug-${collection.urlId}`,
|
id: `any-slug-${collection.urlId}`,
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
@@ -1250,9 +1168,8 @@ describe("#collections.info", () => {
|
|||||||
userId: user.id,
|
userId: user.id,
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
const res = await server.post("/api/collections.info", {
|
const res = await server.post("/api/collections.info", user, {
|
||||||
body: {
|
body: {
|
||||||
token: user.getJwtToken(),
|
|
||||||
id: collection.id,
|
id: collection.id,
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
@@ -1274,9 +1191,8 @@ describe("#collections.info", () => {
|
|||||||
createdById: user.id,
|
createdById: user.id,
|
||||||
permission: CollectionPermission.Read,
|
permission: CollectionPermission.Read,
|
||||||
});
|
});
|
||||||
const res = await server.post("/api/collections.info", {
|
const res = await server.post("/api/collections.info", user, {
|
||||||
body: {
|
body: {
|
||||||
token: user.getJwtToken(),
|
|
||||||
id: collection.id,
|
id: collection.id,
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
@@ -1295,9 +1211,8 @@ describe("#collections.info", () => {
|
|||||||
it("should require authorization", async () => {
|
it("should require authorization", async () => {
|
||||||
const collection = await buildCollection();
|
const collection = await buildCollection();
|
||||||
const user = await buildUser();
|
const user = await buildUser();
|
||||||
const res = await server.post("/api/collections.info", {
|
const res = await server.post("/api/collections.info", user, {
|
||||||
body: {
|
body: {
|
||||||
token: user.getJwtToken(),
|
|
||||||
id: collection.id,
|
id: collection.id,
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
@@ -1315,9 +1230,8 @@ describe("#collections.create", () => {
|
|||||||
|
|
||||||
it("should create collection", async () => {
|
it("should create collection", async () => {
|
||||||
const user = await buildUser();
|
const user = await buildUser();
|
||||||
const res = await server.post("/api/collections.create", {
|
const res = await server.post("/api/collections.create", user, {
|
||||||
body: {
|
body: {
|
||||||
token: user.getJwtToken(),
|
|
||||||
name: "Test",
|
name: "Test",
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
@@ -1333,9 +1247,8 @@ describe("#collections.create", () => {
|
|||||||
|
|
||||||
it("should error when index is invalid", async () => {
|
it("should error when index is invalid", async () => {
|
||||||
const user = await buildUser();
|
const user = await buildUser();
|
||||||
const res = await server.post("/api/collections.create", {
|
const res = await server.post("/api/collections.create", user, {
|
||||||
body: {
|
body: {
|
||||||
token: user.getJwtToken(),
|
|
||||||
name: "Test",
|
name: "Test",
|
||||||
index: "يونيكود",
|
index: "يونيكود",
|
||||||
},
|
},
|
||||||
@@ -1345,9 +1258,8 @@ describe("#collections.create", () => {
|
|||||||
|
|
||||||
it("should allow setting sharing to false", async () => {
|
it("should allow setting sharing to false", async () => {
|
||||||
const user = await buildUser();
|
const user = await buildUser();
|
||||||
const res = await server.post("/api/collections.create", {
|
const res = await server.post("/api/collections.create", user, {
|
||||||
body: {
|
body: {
|
||||||
token: user.getJwtToken(),
|
|
||||||
name: "Test",
|
name: "Test",
|
||||||
sharing: false,
|
sharing: false,
|
||||||
},
|
},
|
||||||
@@ -1360,9 +1272,8 @@ describe("#collections.create", () => {
|
|||||||
|
|
||||||
it("should return correct policies with private collection", async () => {
|
it("should return correct policies with private collection", async () => {
|
||||||
const user = await buildUser();
|
const user = await buildUser();
|
||||||
const res = await server.post("/api/collections.create", {
|
const res = await server.post("/api/collections.create", user, {
|
||||||
body: {
|
body: {
|
||||||
token: user.getJwtToken(),
|
|
||||||
name: "Test",
|
name: "Test",
|
||||||
permission: null,
|
permission: null,
|
||||||
},
|
},
|
||||||
@@ -1381,15 +1292,13 @@ describe("#collections.create", () => {
|
|||||||
buildAdmin({ teamId: team.id }),
|
buildAdmin({ teamId: team.id }),
|
||||||
]);
|
]);
|
||||||
|
|
||||||
const resA = await server.post("/api/collections.create", {
|
const resA = await server.post("/api/collections.create", adminA, {
|
||||||
body: {
|
body: {
|
||||||
token: adminA.getJwtToken(),
|
|
||||||
name: "Test A",
|
name: "Test A",
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
const resB = await server.post("/api/collections.create", {
|
const resB = await server.post("/api/collections.create", adminB, {
|
||||||
body: {
|
body: {
|
||||||
token: adminB.getJwtToken(),
|
|
||||||
name: "Test B",
|
name: "Test B",
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
@@ -1404,9 +1313,9 @@ describe("#collections.create", () => {
|
|||||||
const user = await buildUser();
|
const user = await buildUser();
|
||||||
const createdCollectionAResponse = await server.post(
|
const createdCollectionAResponse = await server.post(
|
||||||
"/api/collections.create",
|
"/api/collections.create",
|
||||||
|
user,
|
||||||
{
|
{
|
||||||
body: {
|
body: {
|
||||||
token: user.getJwtToken(),
|
|
||||||
name: "A",
|
name: "A",
|
||||||
sharing: false,
|
sharing: false,
|
||||||
index: "a",
|
index: "a",
|
||||||
@@ -1416,9 +1325,9 @@ describe("#collections.create", () => {
|
|||||||
await createdCollectionAResponse.json();
|
await createdCollectionAResponse.json();
|
||||||
const createCollectionResponse = await server.post(
|
const createCollectionResponse = await server.post(
|
||||||
"/api/collections.create",
|
"/api/collections.create",
|
||||||
|
user,
|
||||||
{
|
{
|
||||||
body: {
|
body: {
|
||||||
token: user.getJwtToken(),
|
|
||||||
name: "C",
|
name: "C",
|
||||||
sharing: false,
|
sharing: false,
|
||||||
index: "a",
|
index: "a",
|
||||||
@@ -1435,9 +1344,9 @@ describe("#collections.create", () => {
|
|||||||
const user = await buildUser();
|
const user = await buildUser();
|
||||||
const createdCollectionAResponse = await server.post(
|
const createdCollectionAResponse = await server.post(
|
||||||
"/api/collections.create",
|
"/api/collections.create",
|
||||||
|
user,
|
||||||
{
|
{
|
||||||
body: {
|
body: {
|
||||||
token: user.getJwtToken(),
|
|
||||||
name: "A",
|
name: "A",
|
||||||
sharing: false,
|
sharing: false,
|
||||||
index: "a",
|
index: "a",
|
||||||
@@ -1446,9 +1355,9 @@ describe("#collections.create", () => {
|
|||||||
);
|
);
|
||||||
const createdCollectionBResponse = await server.post(
|
const createdCollectionBResponse = await server.post(
|
||||||
"/api/collections.create",
|
"/api/collections.create",
|
||||||
|
user,
|
||||||
{
|
{
|
||||||
body: {
|
body: {
|
||||||
token: user.getJwtToken(),
|
|
||||||
name: "B",
|
name: "B",
|
||||||
sharing: false,
|
sharing: false,
|
||||||
index: "b",
|
index: "b",
|
||||||
@@ -1459,9 +1368,9 @@ describe("#collections.create", () => {
|
|||||||
await createdCollectionBResponse.json();
|
await createdCollectionBResponse.json();
|
||||||
const createCollectionResponse = await server.post(
|
const createCollectionResponse = await server.post(
|
||||||
"/api/collections.create",
|
"/api/collections.create",
|
||||||
|
user,
|
||||||
{
|
{
|
||||||
body: {
|
body: {
|
||||||
token: user.getJwtToken(),
|
|
||||||
name: "C",
|
name: "C",
|
||||||
sharing: false,
|
sharing: false,
|
||||||
index: "a",
|
index: "a",
|
||||||
@@ -1493,9 +1402,8 @@ describe("#collections.update", () => {
|
|||||||
it("should require authorization", async () => {
|
it("should require authorization", async () => {
|
||||||
const collection = await buildCollection();
|
const collection = await buildCollection();
|
||||||
const user = await buildUser();
|
const user = await buildUser();
|
||||||
const res = await server.post("/api/collections.update", {
|
const res = await server.post("/api/collections.update", user, {
|
||||||
body: {
|
body: {
|
||||||
token: user.getJwtToken(),
|
|
||||||
id: collection.id,
|
id: collection.id,
|
||||||
name: "Test",
|
name: "Test",
|
||||||
},
|
},
|
||||||
@@ -1507,9 +1415,8 @@ describe("#collections.update", () => {
|
|||||||
const team = await buildTeam();
|
const team = await buildTeam();
|
||||||
const admin = await buildAdmin({ teamId: team.id });
|
const admin = await buildAdmin({ teamId: team.id });
|
||||||
const collection = await buildCollection({ teamId: team.id });
|
const collection = await buildCollection({ teamId: team.id });
|
||||||
const res = await server.post("/api/collections.update", {
|
const res = await server.post("/api/collections.update", admin, {
|
||||||
body: {
|
body: {
|
||||||
token: admin.getJwtToken(),
|
|
||||||
id: collection.id,
|
id: collection.id,
|
||||||
name: "Test",
|
name: "Test",
|
||||||
},
|
},
|
||||||
@@ -1524,9 +1431,8 @@ describe("#collections.update", () => {
|
|||||||
const team = await buildTeam();
|
const team = await buildTeam();
|
||||||
const admin = await buildAdmin({ teamId: team.id });
|
const admin = await buildAdmin({ teamId: team.id });
|
||||||
const collection = await buildCollection({ teamId: team.id });
|
const collection = await buildCollection({ teamId: team.id });
|
||||||
const res = await server.post("/api/collections.update", {
|
const res = await server.post("/api/collections.update", admin, {
|
||||||
body: {
|
body: {
|
||||||
token: admin.getJwtToken(),
|
|
||||||
id: collection.id,
|
id: collection.id,
|
||||||
description: "Test",
|
description: "Test",
|
||||||
},
|
},
|
||||||
@@ -1545,9 +1451,8 @@ describe("#collections.update", () => {
|
|||||||
const team = await buildTeam();
|
const team = await buildTeam();
|
||||||
const admin = await buildAdmin({ teamId: team.id });
|
const admin = await buildAdmin({ teamId: team.id });
|
||||||
const collection = await buildCollection({ teamId: team.id });
|
const collection = await buildCollection({ teamId: team.id });
|
||||||
const res = await server.post("/api/collections.update", {
|
const res = await server.post("/api/collections.update", admin, {
|
||||||
body: {
|
body: {
|
||||||
token: admin.getJwtToken(),
|
|
||||||
id: collection.id,
|
id: collection.id,
|
||||||
data: {
|
data: {
|
||||||
content: [
|
content: [
|
||||||
@@ -1570,9 +1475,8 @@ describe("#collections.update", () => {
|
|||||||
field: "index",
|
field: "index",
|
||||||
direction: "desc",
|
direction: "desc",
|
||||||
};
|
};
|
||||||
const res = await server.post("/api/collections.update", {
|
const res = await server.post("/api/collections.update", admin, {
|
||||||
body: {
|
body: {
|
||||||
token: admin.getJwtToken(),
|
|
||||||
id: collection.id,
|
id: collection.id,
|
||||||
sort,
|
sort,
|
||||||
},
|
},
|
||||||
@@ -1587,9 +1491,8 @@ describe("#collections.update", () => {
|
|||||||
const team = await buildTeam();
|
const team = await buildTeam();
|
||||||
const admin = await buildAdmin({ teamId: team.id });
|
const admin = await buildAdmin({ teamId: team.id });
|
||||||
const collection = await buildCollection({ teamId: team.id });
|
const collection = await buildCollection({ teamId: team.id });
|
||||||
const res = await server.post("/api/collections.update", {
|
const res = await server.post("/api/collections.update", admin, {
|
||||||
body: {
|
body: {
|
||||||
token: admin.getJwtToken(),
|
|
||||||
id: collection.id,
|
id: collection.id,
|
||||||
permission: null,
|
permission: null,
|
||||||
},
|
},
|
||||||
@@ -1604,9 +1507,8 @@ describe("#collections.update", () => {
|
|||||||
const team = await buildTeam();
|
const team = await buildTeam();
|
||||||
const admin = await buildAdmin({ teamId: team.id });
|
const admin = await buildAdmin({ teamId: team.id });
|
||||||
const collection = await buildCollection({ teamId: team.id });
|
const collection = await buildCollection({ teamId: team.id });
|
||||||
const res = await server.post("/api/collections.update", {
|
const res = await server.post("/api/collections.update", admin, {
|
||||||
body: {
|
body: {
|
||||||
token: admin.getJwtToken(),
|
|
||||||
id: collection.id,
|
id: collection.id,
|
||||||
permission: null,
|
permission: null,
|
||||||
name: " Test ",
|
name: " Test ",
|
||||||
@@ -1633,9 +1535,8 @@ describe("#collections.update", () => {
|
|||||||
createdById: admin.id,
|
createdById: admin.id,
|
||||||
permission: CollectionPermission.ReadWrite,
|
permission: CollectionPermission.ReadWrite,
|
||||||
});
|
});
|
||||||
const res = await server.post("/api/collections.update", {
|
const res = await server.post("/api/collections.update", admin, {
|
||||||
body: {
|
body: {
|
||||||
token: admin.getJwtToken(),
|
|
||||||
id: collection.id,
|
id: collection.id,
|
||||||
permission: CollectionPermission.ReadWrite,
|
permission: CollectionPermission.ReadWrite,
|
||||||
name: "Test",
|
name: "Test",
|
||||||
@@ -1662,9 +1563,8 @@ describe("#collections.update", () => {
|
|||||||
createdById: admin.id,
|
createdById: admin.id,
|
||||||
permission: CollectionPermission.ReadWrite,
|
permission: CollectionPermission.ReadWrite,
|
||||||
});
|
});
|
||||||
const res = await server.post("/api/collections.update", {
|
const res = await server.post("/api/collections.update", admin, {
|
||||||
body: {
|
body: {
|
||||||
token: admin.getJwtToken(),
|
|
||||||
id: collection.id,
|
id: collection.id,
|
||||||
name: "Test",
|
name: "Test",
|
||||||
},
|
},
|
||||||
@@ -1695,9 +1595,8 @@ describe("#collections.update", () => {
|
|||||||
createdById: user.id,
|
createdById: user.id,
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
const res = await server.post("/api/collections.update", {
|
const res = await server.post("/api/collections.update", user, {
|
||||||
body: {
|
body: {
|
||||||
token: user.getJwtToken(),
|
|
||||||
id: collection.id,
|
id: collection.id,
|
||||||
name: "Test",
|
name: "Test",
|
||||||
},
|
},
|
||||||
@@ -1729,9 +1628,8 @@ describe("#collections.update", () => {
|
|||||||
},
|
},
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
const res = await server.post("/api/collections.update", {
|
const res = await server.post("/api/collections.update", user, {
|
||||||
body: {
|
body: {
|
||||||
token: user.getJwtToken(),
|
|
||||||
id: collection.id,
|
id: collection.id,
|
||||||
name: "Test",
|
name: "Test",
|
||||||
},
|
},
|
||||||
@@ -1747,9 +1645,8 @@ describe("#collections.update", () => {
|
|||||||
field: "blah",
|
field: "blah",
|
||||||
direction: "desc",
|
direction: "desc",
|
||||||
};
|
};
|
||||||
const res = await server.post("/api/collections.update", {
|
const res = await server.post("/api/collections.update", admin, {
|
||||||
body: {
|
body: {
|
||||||
token: admin.getJwtToken(),
|
|
||||||
id: collection.id,
|
id: collection.id,
|
||||||
sort,
|
sort,
|
||||||
},
|
},
|
||||||
@@ -1765,9 +1662,8 @@ describe("#collections.update", () => {
|
|||||||
field: "title",
|
field: "title",
|
||||||
direction: "blah",
|
direction: "blah",
|
||||||
};
|
};
|
||||||
const res = await server.post("/api/collections.update", {
|
const res = await server.post("/api/collections.update", admin, {
|
||||||
body: {
|
body: {
|
||||||
token: admin.getJwtToken(),
|
|
||||||
id: collection.id,
|
id: collection.id,
|
||||||
sort,
|
sort,
|
||||||
},
|
},
|
||||||
@@ -1787,9 +1683,8 @@ describe("#collections.delete", () => {
|
|||||||
it("should require authorization", async () => {
|
it("should require authorization", async () => {
|
||||||
const collection = await buildCollection();
|
const collection = await buildCollection();
|
||||||
const user = await buildUser();
|
const user = await buildUser();
|
||||||
const res = await server.post("/api/collections.delete", {
|
const res = await server.post("/api/collections.delete", user, {
|
||||||
body: {
|
body: {
|
||||||
token: user.getJwtToken(),
|
|
||||||
id: collection.id,
|
id: collection.id,
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
@@ -1800,9 +1695,8 @@ describe("#collections.delete", () => {
|
|||||||
const team = await buildTeam();
|
const team = await buildTeam();
|
||||||
const admin = await buildAdmin({ teamId: team.id });
|
const admin = await buildAdmin({ teamId: team.id });
|
||||||
const collection = await buildCollection({ teamId: team.id });
|
const collection = await buildCollection({ teamId: team.id });
|
||||||
const res = await server.post("/api/collections.delete", {
|
const res = await server.post("/api/collections.delete", admin, {
|
||||||
body: {
|
body: {
|
||||||
token: admin.getJwtToken(),
|
|
||||||
id: collection.id,
|
id: collection.id,
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
@@ -1815,9 +1709,8 @@ describe("#collections.delete", () => {
|
|||||||
const collection = await buildCollection({ teamId: team.id });
|
const collection = await buildCollection({ teamId: team.id });
|
||||||
await buildCollection({ teamId: team.id });
|
await buildCollection({ teamId: team.id });
|
||||||
|
|
||||||
const res = await server.post("/api/collections.delete", {
|
const res = await server.post("/api/collections.delete", admin, {
|
||||||
body: {
|
body: {
|
||||||
token: admin.getJwtToken(),
|
|
||||||
id: collection.id,
|
id: collection.id,
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
@@ -1840,9 +1733,8 @@ describe("#collections.delete", () => {
|
|||||||
collectionId: collection.id,
|
collectionId: collection.id,
|
||||||
archivedAt: new Date(),
|
archivedAt: new Date(),
|
||||||
});
|
});
|
||||||
const res = await server.post("/api/collections.delete", {
|
const res = await server.post("/api/collections.delete", admin, {
|
||||||
body: {
|
body: {
|
||||||
token: admin.getJwtToken(),
|
|
||||||
id: collection.id,
|
id: collection.id,
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
@@ -1881,9 +1773,8 @@ describe("#collections.delete", () => {
|
|||||||
createdById: user.id,
|
createdById: user.id,
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
const res = await server.post("/api/collections.delete", {
|
const res = await server.post("/api/collections.delete", user, {
|
||||||
body: {
|
body: {
|
||||||
token: user.getJwtToken(),
|
|
||||||
id: collection.id,
|
id: collection.id,
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
@@ -1907,9 +1798,8 @@ describe("#collections.archive", () => {
|
|||||||
await collection.reload();
|
await collection.reload();
|
||||||
expect(collection.documentStructure).not.toBe(null);
|
expect(collection.documentStructure).not.toBe(null);
|
||||||
expect(document.archivedAt).toBe(null);
|
expect(document.archivedAt).toBe(null);
|
||||||
const res = await server.post("/api/collections.archive", {
|
const res = await server.post("/api/collections.archive", admin, {
|
||||||
body: {
|
body: {
|
||||||
token: admin.getJwtToken(),
|
|
||||||
id: collection.id,
|
id: collection.id,
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
@@ -1941,9 +1831,8 @@ describe("#collections.restore", () => {
|
|||||||
// reload to ensure documentStructure is set
|
// reload to ensure documentStructure is set
|
||||||
await collection.reload();
|
await collection.reload();
|
||||||
expect(collection.documentStructure).not.toBe(null);
|
expect(collection.documentStructure).not.toBe(null);
|
||||||
const archiveRes = await server.post("/api/collections.archive", {
|
const archiveRes = await server.post("/api/collections.archive", admin, {
|
||||||
body: {
|
body: {
|
||||||
token: admin.getJwtToken(),
|
|
||||||
id: collection.id,
|
id: collection.id,
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
@@ -1953,9 +1842,8 @@ describe("#collections.restore", () => {
|
|||||||
]);
|
]);
|
||||||
expect(archiveRes.status).toEqual(200);
|
expect(archiveRes.status).toEqual(200);
|
||||||
expect(archiveBody.data.archivedAt).not.toBe(null);
|
expect(archiveBody.data.archivedAt).not.toBe(null);
|
||||||
const res = await server.post("/api/collections.restore", {
|
const res = await server.post("/api/collections.restore", admin, {
|
||||||
body: {
|
body: {
|
||||||
token: admin.getJwtToken(),
|
|
||||||
id: collection.id,
|
id: collection.id,
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
@@ -1982,9 +1870,8 @@ describe("#collections.restore", () => {
|
|||||||
expect(collection.index).toEqual("P");
|
expect(collection.index).toEqual("P");
|
||||||
expect(archivedCollection.index).toEqual("P");
|
expect(archivedCollection.index).toEqual("P");
|
||||||
|
|
||||||
const res = await server.post("/api/collections.restore", {
|
const res = await server.post("/api/collections.restore", admin, {
|
||||||
body: {
|
body: {
|
||||||
token: admin.getJwtToken(),
|
|
||||||
id: archivedCollection.id,
|
id: archivedCollection.id,
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
|
|||||||
@@ -36,9 +36,8 @@ describe("#comments.info", () => {
|
|||||||
userId: user2.id,
|
userId: user2.id,
|
||||||
documentId: document.id,
|
documentId: document.id,
|
||||||
});
|
});
|
||||||
const res = await server.post("/api/comments.info", {
|
const res = await server.post("/api/comments.info", user, {
|
||||||
body: {
|
body: {
|
||||||
token: user.getJwtToken(),
|
|
||||||
id: comment.id,
|
id: comment.id,
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
@@ -65,9 +64,8 @@ describe("#comments.info", () => {
|
|||||||
userId: user2.id,
|
userId: user2.id,
|
||||||
documentId: document.id,
|
documentId: document.id,
|
||||||
});
|
});
|
||||||
const res = await server.post("/api/comments.info", {
|
const res = await server.post("/api/comments.info", user, {
|
||||||
body: {
|
body: {
|
||||||
token: user.getJwtToken(),
|
|
||||||
id: comment.id,
|
id: comment.id,
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
@@ -111,9 +109,8 @@ describe("#comments.info", () => {
|
|||||||
} as ProsemirrorData;
|
} as ProsemirrorData;
|
||||||
await document.update({ content });
|
await document.update({ content });
|
||||||
|
|
||||||
const res = await server.post("/api/comments.info", {
|
const res = await server.post("/api/comments.info", user, {
|
||||||
body: {
|
body: {
|
||||||
token: user.getJwtToken(),
|
|
||||||
id: comment.id,
|
id: comment.id,
|
||||||
includeAnchorText: true,
|
includeAnchorText: true,
|
||||||
},
|
},
|
||||||
@@ -154,9 +151,8 @@ describe("#comments.info", () => {
|
|||||||
} as ProsemirrorData;
|
} as ProsemirrorData;
|
||||||
await document.update({ content });
|
await document.update({ content });
|
||||||
|
|
||||||
const res = await server.post("/api/comments.info", {
|
const res = await server.post("/api/comments.info", user, {
|
||||||
body: {
|
body: {
|
||||||
token: user.getJwtToken(),
|
|
||||||
id: comment.id,
|
id: comment.id,
|
||||||
includeAnchorText: true,
|
includeAnchorText: true,
|
||||||
},
|
},
|
||||||
@@ -194,9 +190,8 @@ describe("#comments.list", () => {
|
|||||||
documentId: document.id,
|
documentId: document.id,
|
||||||
createdAt: new Date(),
|
createdAt: new Date(),
|
||||||
});
|
});
|
||||||
const res = await server.post("/api/comments.list", {
|
const res = await server.post("/api/comments.list", user, {
|
||||||
body: {
|
body: {
|
||||||
token: user.getJwtToken(),
|
|
||||||
documentId: document.id,
|
documentId: document.id,
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
@@ -244,9 +239,8 @@ describe("#comments.list", () => {
|
|||||||
} as ProsemirrorData;
|
} as ProsemirrorData;
|
||||||
await document.update({ content });
|
await document.update({ content });
|
||||||
|
|
||||||
const res = await server.post("/api/comments.list", {
|
const res = await server.post("/api/comments.list", user, {
|
||||||
body: {
|
body: {
|
||||||
token: user.getJwtToken(),
|
|
||||||
documentId: document.id,
|
documentId: document.id,
|
||||||
includeAnchorText: true,
|
includeAnchorText: true,
|
||||||
sort: "createdAt",
|
sort: "createdAt",
|
||||||
@@ -279,9 +273,8 @@ describe("#comments.list", () => {
|
|||||||
userId: user.id,
|
userId: user.id,
|
||||||
documentId: document.id,
|
documentId: document.id,
|
||||||
});
|
});
|
||||||
const res = await server.post("/api/comments.list", {
|
const res = await server.post("/api/comments.list", user, {
|
||||||
body: {
|
body: {
|
||||||
token: user.getJwtToken(),
|
|
||||||
collectionId: collection.id,
|
collectionId: collection.id,
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
@@ -311,9 +304,8 @@ describe("#comments.list", () => {
|
|||||||
documentId: document.id,
|
documentId: document.id,
|
||||||
parentCommentId: comment.id,
|
parentCommentId: comment.id,
|
||||||
});
|
});
|
||||||
const res = await server.post("/api/comments.list", {
|
const res = await server.post("/api/comments.list", user, {
|
||||||
body: {
|
body: {
|
||||||
token: user.getJwtToken(),
|
|
||||||
parentCommentId: comment.id,
|
parentCommentId: comment.id,
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
@@ -342,9 +334,8 @@ describe("#comments.list", () => {
|
|||||||
userId: user.id,
|
userId: user.id,
|
||||||
documentId: document.id,
|
documentId: document.id,
|
||||||
});
|
});
|
||||||
const res = await server.post("/api/comments.list", {
|
const res = await server.post("/api/comments.list", user, {
|
||||||
body: {
|
body: {
|
||||||
token: user.getJwtToken(),
|
|
||||||
documentId: document.id,
|
documentId: document.id,
|
||||||
statusFilter: [CommentStatusFilter.Resolved],
|
statusFilter: [CommentStatusFilter.Resolved],
|
||||||
},
|
},
|
||||||
@@ -390,11 +381,7 @@ describe("#comments.list", () => {
|
|||||||
userId: user.id,
|
userId: user.id,
|
||||||
documentId: document2.id,
|
documentId: document2.id,
|
||||||
});
|
});
|
||||||
const res = await server.post("/api/comments.list", {
|
const res = await server.post("/api/comments.list", user);
|
||||||
body: {
|
|
||||||
token: user.getJwtToken(),
|
|
||||||
},
|
|
||||||
});
|
|
||||||
const body = await res.json();
|
const body = await res.json();
|
||||||
|
|
||||||
expect(res.status).toEqual(200);
|
expect(res.status).toEqual(200);
|
||||||
@@ -425,9 +412,8 @@ describe("#comments.list", () => {
|
|||||||
reactions,
|
reactions,
|
||||||
});
|
});
|
||||||
|
|
||||||
const res = await server.post("/api/comments.list", {
|
const res = await server.post("/api/comments.list", user, {
|
||||||
body: {
|
body: {
|
||||||
token: user.getJwtToken(),
|
|
||||||
documentId: document.id,
|
documentId: document.id,
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
@@ -464,9 +450,8 @@ describe("#comments.create", () => {
|
|||||||
documentId: document.id,
|
documentId: document.id,
|
||||||
});
|
});
|
||||||
|
|
||||||
const res = await server.post("/api/comments.create", {
|
const res = await server.post("/api/comments.create", user, {
|
||||||
body: {
|
body: {
|
||||||
token: user.getJwtToken(),
|
|
||||||
documentId: document.id,
|
documentId: document.id,
|
||||||
data: comment.data,
|
data: comment.data,
|
||||||
},
|
},
|
||||||
@@ -491,9 +476,8 @@ describe("#comments.create", () => {
|
|||||||
|
|
||||||
const text = "test\n\n- list item 1\n- list item 2";
|
const text = "test\n\n- list item 1\n- list item 2";
|
||||||
|
|
||||||
const res = await server.post("/api/comments.create", {
|
const res = await server.post("/api/comments.create", user, {
|
||||||
body: {
|
body: {
|
||||||
token: user.getJwtToken(),
|
|
||||||
documentId: document.id,
|
documentId: document.id,
|
||||||
text,
|
text,
|
||||||
},
|
},
|
||||||
@@ -515,17 +499,15 @@ describe("#comments.create", () => {
|
|||||||
teamId: user.teamId,
|
teamId: user.teamId,
|
||||||
});
|
});
|
||||||
|
|
||||||
const res = await server.post("/api/comments.create", {
|
const res = await server.post("/api/comments.create", user, {
|
||||||
body: {
|
body: {
|
||||||
token: user.getJwtToken(),
|
|
||||||
documentId: document.id,
|
documentId: document.id,
|
||||||
data: null,
|
data: null,
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
|
|
||||||
const anotherRes = await server.post("/api/comments.create", {
|
const anotherRes = await server.post("/api/comments.create", user, {
|
||||||
body: {
|
body: {
|
||||||
token: user.getJwtToken(),
|
|
||||||
documentId: document.id,
|
documentId: document.id,
|
||||||
data: {
|
data: {
|
||||||
type: "doc",
|
type: "doc",
|
||||||
@@ -546,9 +528,8 @@ describe("#comments.create", () => {
|
|||||||
teamId: user.teamId,
|
teamId: user.teamId,
|
||||||
});
|
});
|
||||||
|
|
||||||
const res = await server.post("/api/comments.create", {
|
const res = await server.post("/api/comments.create", user, {
|
||||||
body: {
|
body: {
|
||||||
token: user.getJwtToken(),
|
|
||||||
documentId: document.id,
|
documentId: document.id,
|
||||||
data: {
|
data: {
|
||||||
type: "doc",
|
type: "doc",
|
||||||
@@ -573,9 +554,8 @@ describe("#comments.create", () => {
|
|||||||
teamId: user.teamId,
|
teamId: user.teamId,
|
||||||
});
|
});
|
||||||
|
|
||||||
const res = await server.post("/api/comments.create", {
|
const res = await server.post("/api/comments.create", user, {
|
||||||
body: {
|
body: {
|
||||||
token: user.getJwtToken(),
|
|
||||||
documentId: document.id,
|
documentId: document.id,
|
||||||
data: {
|
data: {
|
||||||
type: "doc",
|
type: "doc",
|
||||||
@@ -608,9 +588,8 @@ describe("#comments.create", () => {
|
|||||||
teamId: user.teamId,
|
teamId: user.teamId,
|
||||||
});
|
});
|
||||||
|
|
||||||
const res = await server.post("/api/comments.create", {
|
const res = await server.post("/api/comments.create", user, {
|
||||||
body: {
|
body: {
|
||||||
token: user.getJwtToken(),
|
|
||||||
documentId: document.id,
|
documentId: document.id,
|
||||||
data: {
|
data: {
|
||||||
type: "doc",
|
type: "doc",
|
||||||
@@ -643,9 +622,8 @@ describe("#comments.create", () => {
|
|||||||
teamId: user.teamId,
|
teamId: user.teamId,
|
||||||
});
|
});
|
||||||
|
|
||||||
const res = await server.post("/api/comments.create", {
|
const res = await server.post("/api/comments.create", user, {
|
||||||
body: {
|
body: {
|
||||||
token: user.getJwtToken(),
|
|
||||||
documentId: document.id,
|
documentId: document.id,
|
||||||
data: {
|
data: {
|
||||||
type: "nonsense",
|
type: "nonsense",
|
||||||
@@ -664,9 +642,8 @@ describe("#comments.create", () => {
|
|||||||
teamId: user.teamId,
|
teamId: user.teamId,
|
||||||
});
|
});
|
||||||
|
|
||||||
const res = await server.post("/api/comments.create", {
|
const res = await server.post("/api/comments.create", user, {
|
||||||
body: {
|
body: {
|
||||||
token: user.getJwtToken(),
|
|
||||||
documentId: document.id,
|
documentId: document.id,
|
||||||
data: {
|
data: {
|
||||||
type: "doc",
|
type: "doc",
|
||||||
@@ -692,9 +669,8 @@ describe("#comments.create", () => {
|
|||||||
teamId: user.teamId,
|
teamId: user.teamId,
|
||||||
});
|
});
|
||||||
|
|
||||||
const res = await server.post("/api/comments.create", {
|
const res = await server.post("/api/comments.create", user, {
|
||||||
body: {
|
body: {
|
||||||
token: user.getJwtToken(),
|
|
||||||
documentId: document.id,
|
documentId: document.id,
|
||||||
data: {
|
data: {
|
||||||
type: "doc",
|
type: "doc",
|
||||||
@@ -730,9 +706,8 @@ describe("#comments.create", () => {
|
|||||||
teamId: user.teamId,
|
teamId: user.teamId,
|
||||||
});
|
});
|
||||||
|
|
||||||
const res = await server.post("/api/comments.create", {
|
const res = await server.post("/api/comments.create", user, {
|
||||||
body: {
|
body: {
|
||||||
token: user.getJwtToken(),
|
|
||||||
documentId: document.id,
|
documentId: document.id,
|
||||||
data: {
|
data: {
|
||||||
type: "doc",
|
type: "doc",
|
||||||
@@ -796,9 +771,8 @@ describe("#comments.update", () => {
|
|||||||
documentId: document.id,
|
documentId: document.id,
|
||||||
});
|
});
|
||||||
|
|
||||||
const res = await server.post("/api/comments.update", {
|
const res = await server.post("/api/comments.update", user, {
|
||||||
body: {
|
body: {
|
||||||
token: user.getJwtToken(),
|
|
||||||
id: comment.id,
|
id: comment.id,
|
||||||
data: comment.data,
|
data: comment.data,
|
||||||
},
|
},
|
||||||
@@ -825,9 +799,8 @@ describe("#comments.update", () => {
|
|||||||
documentId: document.id,
|
documentId: document.id,
|
||||||
});
|
});
|
||||||
|
|
||||||
const res = await server.post("/api/comments.update", {
|
const res = await server.post("/api/comments.update", user, {
|
||||||
body: {
|
body: {
|
||||||
token: user.getJwtToken(),
|
|
||||||
id: comment.id,
|
id: comment.id,
|
||||||
data: {
|
data: {
|
||||||
type: "doc",
|
type: "doc",
|
||||||
@@ -867,9 +840,8 @@ describe("#comments.resolve", () => {
|
|||||||
documentId: document.id,
|
documentId: document.id,
|
||||||
});
|
});
|
||||||
|
|
||||||
const res = await server.post("/api/comments.resolve", {
|
const res = await server.post("/api/comments.resolve", user, {
|
||||||
body: {
|
body: {
|
||||||
token: user.getJwtToken(),
|
|
||||||
id: comment.id,
|
id: comment.id,
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
@@ -907,9 +879,8 @@ describe("#comments.resolve", () => {
|
|||||||
parentCommentId: parentComment.id,
|
parentCommentId: parentComment.id,
|
||||||
});
|
});
|
||||||
|
|
||||||
const res = await server.post("/api/comments.resolve", {
|
const res = await server.post("/api/comments.resolve", user, {
|
||||||
body: {
|
body: {
|
||||||
token: user.getJwtToken(),
|
|
||||||
id: comment.id,
|
id: comment.id,
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
@@ -938,9 +909,8 @@ describe("#comments.unresolve", () => {
|
|||||||
documentId: document.id,
|
documentId: document.id,
|
||||||
});
|
});
|
||||||
|
|
||||||
const res = await server.post("/api/comments.unresolve", {
|
const res = await server.post("/api/comments.unresolve", user, {
|
||||||
body: {
|
body: {
|
||||||
token: user.getJwtToken(),
|
|
||||||
id: comment.id,
|
id: comment.id,
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
@@ -980,9 +950,8 @@ describe("#comments.add_reaction", () => {
|
|||||||
documentId: document.id,
|
documentId: document.id,
|
||||||
});
|
});
|
||||||
|
|
||||||
const res = await server.post("/api/comments.add_reaction", {
|
const res = await server.post("/api/comments.add_reaction", user, {
|
||||||
body: {
|
body: {
|
||||||
token: user.getJwtToken(),
|
|
||||||
id: comment.id,
|
id: comment.id,
|
||||||
emoji: "😄",
|
emoji: "😄",
|
||||||
},
|
},
|
||||||
@@ -1016,9 +985,8 @@ describe("#comments.add_reaction", () => {
|
|||||||
reactions: [{ emoji: "😄", userIds: ["test-user"] }],
|
reactions: [{ emoji: "😄", userIds: ["test-user"] }],
|
||||||
});
|
});
|
||||||
|
|
||||||
const res = await server.post("/api/comments.add_reaction", {
|
const res = await server.post("/api/comments.add_reaction", user, {
|
||||||
body: {
|
body: {
|
||||||
token: user.getJwtToken(),
|
|
||||||
id: comment.id,
|
id: comment.id,
|
||||||
emoji: "😄",
|
emoji: "😄",
|
||||||
},
|
},
|
||||||
@@ -1055,9 +1023,8 @@ describe("#comments.add_reaction", () => {
|
|||||||
createdById: user.id,
|
createdById: user.id,
|
||||||
});
|
});
|
||||||
|
|
||||||
const res = await server.post("/api/comments.add_reaction", {
|
const res = await server.post("/api/comments.add_reaction", user, {
|
||||||
body: {
|
body: {
|
||||||
token: user.getJwtToken(),
|
|
||||||
id: comment.id,
|
id: comment.id,
|
||||||
emoji: emoji.id,
|
emoji: emoji.id,
|
||||||
},
|
},
|
||||||
@@ -1094,9 +1061,8 @@ describe("#comments.add_reaction", () => {
|
|||||||
teamId: otherTeam.id,
|
teamId: otherTeam.id,
|
||||||
});
|
});
|
||||||
|
|
||||||
const res = await server.post("/api/comments.add_reaction", {
|
const res = await server.post("/api/comments.add_reaction", user, {
|
||||||
body: {
|
body: {
|
||||||
token: user.getJwtToken(),
|
|
||||||
id: comment.id,
|
id: comment.id,
|
||||||
emoji: emoji.id,
|
emoji: emoji.id,
|
||||||
},
|
},
|
||||||
@@ -1134,9 +1100,8 @@ describe("#comments.remove_reaction", () => {
|
|||||||
{ hooks: false }
|
{ hooks: false }
|
||||||
);
|
);
|
||||||
|
|
||||||
const res = await server.post("/api/comments.remove_reaction", {
|
const res = await server.post("/api/comments.remove_reaction", user, {
|
||||||
body: {
|
body: {
|
||||||
token: user.getJwtToken(),
|
|
||||||
id: comment.id,
|
id: comment.id,
|
||||||
emoji: "😄",
|
emoji: "😄",
|
||||||
},
|
},
|
||||||
@@ -1176,9 +1141,8 @@ describe("#comments.remove_reaction", () => {
|
|||||||
{ hooks: false }
|
{ hooks: false }
|
||||||
);
|
);
|
||||||
|
|
||||||
const res = await server.post("/api/comments.remove_reaction", {
|
const res = await server.post("/api/comments.remove_reaction", user, {
|
||||||
body: {
|
body: {
|
||||||
token: user.getJwtToken(),
|
|
||||||
id: comment.id,
|
id: comment.id,
|
||||||
emoji: "😄",
|
emoji: "😄",
|
||||||
},
|
},
|
||||||
|
|||||||
File diff suppressed because it is too large
Load Diff
@@ -33,9 +33,8 @@ describe("#emojis.update", () => {
|
|||||||
userId: user.id,
|
userId: user.id,
|
||||||
});
|
});
|
||||||
|
|
||||||
const res = await server.post("/api/emojis.update", {
|
const res = await server.post("/api/emojis.update", user, {
|
||||||
body: {
|
body: {
|
||||||
token: user.getJwtToken(),
|
|
||||||
id: emoji.id,
|
id: emoji.id,
|
||||||
attachmentId: newAttachment.id,
|
attachmentId: newAttachment.id,
|
||||||
},
|
},
|
||||||
@@ -69,9 +68,8 @@ describe("#emojis.update", () => {
|
|||||||
userId: admin.id,
|
userId: admin.id,
|
||||||
});
|
});
|
||||||
|
|
||||||
const res = await server.post("/api/emojis.update", {
|
const res = await server.post("/api/emojis.update", admin, {
|
||||||
body: {
|
body: {
|
||||||
token: admin.getJwtToken(),
|
|
||||||
id: emoji.id,
|
id: emoji.id,
|
||||||
attachmentId: newAttachment.id,
|
attachmentId: newAttachment.id,
|
||||||
},
|
},
|
||||||
@@ -97,9 +95,8 @@ describe("#emojis.update", () => {
|
|||||||
userId: user.id,
|
userId: user.id,
|
||||||
});
|
});
|
||||||
|
|
||||||
const res = await server.post("/api/emojis.update", {
|
const res = await server.post("/api/emojis.update", user, {
|
||||||
body: {
|
body: {
|
||||||
token: user.getJwtToken(),
|
|
||||||
id: emoji.id,
|
id: emoji.id,
|
||||||
attachmentId: newAttachment.id,
|
attachmentId: newAttachment.id,
|
||||||
},
|
},
|
||||||
@@ -121,9 +118,8 @@ describe("#emojis.update", () => {
|
|||||||
userId: user.id,
|
userId: user.id,
|
||||||
});
|
});
|
||||||
|
|
||||||
const res = await server.post("/api/emojis.update", {
|
const res = await server.post("/api/emojis.update", user, {
|
||||||
body: {
|
body: {
|
||||||
token: user.getJwtToken(),
|
|
||||||
id: emoji.id,
|
id: emoji.id,
|
||||||
attachmentId: newAttachment.id,
|
attachmentId: newAttachment.id,
|
||||||
},
|
},
|
||||||
@@ -139,9 +135,8 @@ describe("#emojis.update", () => {
|
|||||||
userId: user.id,
|
userId: user.id,
|
||||||
});
|
});
|
||||||
|
|
||||||
const res = await server.post("/api/emojis.update", {
|
const res = await server.post("/api/emojis.update", user, {
|
||||||
body: {
|
body: {
|
||||||
token: user.getJwtToken(),
|
|
||||||
id: "00000000-0000-0000-0000-000000000000",
|
id: "00000000-0000-0000-0000-000000000000",
|
||||||
attachmentId: newAttachment.id,
|
attachmentId: newAttachment.id,
|
||||||
},
|
},
|
||||||
@@ -157,9 +152,8 @@ describe("#emojis.update", () => {
|
|||||||
createdById: user.id,
|
createdById: user.id,
|
||||||
});
|
});
|
||||||
|
|
||||||
const res = await server.post("/api/emojis.update", {
|
const res = await server.post("/api/emojis.update", user, {
|
||||||
body: {
|
body: {
|
||||||
token: user.getJwtToken(),
|
|
||||||
id: emoji.id,
|
id: emoji.id,
|
||||||
attachmentId: "00000000-0000-0000-0000-000000000000",
|
attachmentId: "00000000-0000-0000-0000-000000000000",
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -37,9 +37,8 @@ describe("#events.list", () => {
|
|||||||
teamId: user.teamId,
|
teamId: user.teamId,
|
||||||
actorId: admin.id,
|
actorId: admin.id,
|
||||||
});
|
});
|
||||||
const res = await server.post("/api/events.list", {
|
const res = await server.post("/api/events.list", user, {
|
||||||
body: {
|
body: {
|
||||||
token: user.getJwtToken(),
|
|
||||||
collectionId: collection.id,
|
collectionId: collection.id,
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
@@ -76,9 +75,8 @@ describe("#events.list", () => {
|
|||||||
teamId: user.teamId,
|
teamId: user.teamId,
|
||||||
actorId: admin.id,
|
actorId: admin.id,
|
||||||
});
|
});
|
||||||
const res = await server.post("/api/events.list", {
|
const res = await server.post("/api/events.list", admin, {
|
||||||
body: {
|
body: {
|
||||||
token: admin.getJwtToken(),
|
|
||||||
auditLog: true,
|
auditLog: true,
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
@@ -116,9 +114,8 @@ describe("#events.list", () => {
|
|||||||
teamId: user.teamId,
|
teamId: user.teamId,
|
||||||
actorId: user.id,
|
actorId: user.id,
|
||||||
});
|
});
|
||||||
const res = await server.post("/api/events.list", {
|
const res = await server.post("/api/events.list", admin, {
|
||||||
body: {
|
body: {
|
||||||
token: admin.getJwtToken(),
|
|
||||||
auditLog: true,
|
auditLog: true,
|
||||||
actorId: admin.id,
|
actorId: admin.id,
|
||||||
},
|
},
|
||||||
@@ -156,9 +153,8 @@ describe("#events.list", () => {
|
|||||||
teamId: user.teamId,
|
teamId: user.teamId,
|
||||||
actorId: user.id,
|
actorId: user.id,
|
||||||
});
|
});
|
||||||
const res = await server.post("/api/events.list", {
|
const res = await server.post("/api/events.list", user, {
|
||||||
body: {
|
body: {
|
||||||
token: user.getJwtToken(),
|
|
||||||
actorId: admin.id,
|
actorId: admin.id,
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
@@ -193,9 +189,8 @@ describe("#events.list", () => {
|
|||||||
teamId: user.teamId,
|
teamId: user.teamId,
|
||||||
actorId: user.id,
|
actorId: user.id,
|
||||||
});
|
});
|
||||||
const res = await server.post("/api/events.list", {
|
const res = await server.post("/api/events.list", user, {
|
||||||
body: {
|
body: {
|
||||||
token: user.getJwtToken(),
|
|
||||||
actorId: user.id,
|
actorId: user.id,
|
||||||
collectionId: collection.id,
|
collectionId: collection.id,
|
||||||
},
|
},
|
||||||
@@ -225,9 +220,8 @@ describe("#events.list", () => {
|
|||||||
teamId: user.teamId,
|
teamId: user.teamId,
|
||||||
actorId: user.id,
|
actorId: user.id,
|
||||||
});
|
});
|
||||||
const res = await server.post("/api/events.list", {
|
const res = await server.post("/api/events.list", admin, {
|
||||||
body: {
|
body: {
|
||||||
token: admin.getJwtToken(),
|
|
||||||
documentId: document.id,
|
documentId: document.id,
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
@@ -256,9 +250,8 @@ describe("#events.list", () => {
|
|||||||
teamId: user.teamId,
|
teamId: user.teamId,
|
||||||
actorId: user.id,
|
actorId: user.id,
|
||||||
});
|
});
|
||||||
const res = await server.post("/api/events.list", {
|
const res = await server.post("/api/events.list", actor, {
|
||||||
body: {
|
body: {
|
||||||
token: actor.getJwtToken(),
|
|
||||||
documentId: document.id,
|
documentId: document.id,
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
@@ -292,9 +285,8 @@ describe("#events.list", () => {
|
|||||||
teamId: user.teamId,
|
teamId: user.teamId,
|
||||||
actorId: user.id,
|
actorId: user.id,
|
||||||
});
|
});
|
||||||
const res = await server.post("/api/events.list", {
|
const res = await server.post("/api/events.list", user, {
|
||||||
body: {
|
body: {
|
||||||
token: user.getJwtToken(),
|
|
||||||
name: "documents.publish",
|
name: "documents.publish",
|
||||||
collectionId: collection.id,
|
collectionId: collection.id,
|
||||||
},
|
},
|
||||||
@@ -332,9 +324,8 @@ describe("#events.list", () => {
|
|||||||
teamId: user.teamId,
|
teamId: user.teamId,
|
||||||
actorId: user.id,
|
actorId: user.id,
|
||||||
});
|
});
|
||||||
const res = await server.post("/api/events.list", {
|
const res = await server.post("/api/events.list", user, {
|
||||||
body: {
|
body: {
|
||||||
token: user.getJwtToken(),
|
|
||||||
events: ["documents.publish"],
|
events: ["documents.publish"],
|
||||||
collectionId: collection.id,
|
collectionId: collection.id,
|
||||||
},
|
},
|
||||||
@@ -366,11 +357,7 @@ describe("#events.list", () => {
|
|||||||
actorId: user.id,
|
actorId: user.id,
|
||||||
});
|
});
|
||||||
await user.destroy({ hooks: false });
|
await user.destroy({ hooks: false });
|
||||||
const res = await server.post("/api/events.list", {
|
const res = await server.post("/api/events.list", admin);
|
||||||
body: {
|
|
||||||
token: admin.getJwtToken(),
|
|
||||||
},
|
|
||||||
});
|
|
||||||
const body = await res.json();
|
const body = await res.json();
|
||||||
expect(res.status).toEqual(200);
|
expect(res.status).toEqual(200);
|
||||||
expect(body.data.length).toEqual(1);
|
expect(body.data.length).toEqual(1);
|
||||||
@@ -379,9 +366,8 @@ describe("#events.list", () => {
|
|||||||
|
|
||||||
it("should require authorization for audit events", async () => {
|
it("should require authorization for audit events", async () => {
|
||||||
const user = await buildUser();
|
const user = await buildUser();
|
||||||
const res = await server.post("/api/events.list", {
|
const res = await server.post("/api/events.list", user, {
|
||||||
body: {
|
body: {
|
||||||
token: user.getJwtToken(),
|
|
||||||
auditLog: true,
|
auditLog: true,
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
@@ -421,19 +407,14 @@ describe("#events.list", () => {
|
|||||||
});
|
});
|
||||||
|
|
||||||
// user2 tries to list events without specifying documentId/collectionId
|
// user2 tries to list events without specifying documentId/collectionId
|
||||||
const res = await server.post("/api/events.list", {
|
const res = await server.post("/api/events.list", user2);
|
||||||
body: {
|
|
||||||
token: user2.getJwtToken(),
|
|
||||||
},
|
|
||||||
});
|
|
||||||
|
|
||||||
// Non-admins cannot list events without documentId or collectionId
|
// Non-admins cannot list events without documentId or collectionId
|
||||||
expect(res.status).toEqual(403);
|
expect(res.status).toEqual(403);
|
||||||
|
|
||||||
// Also verify user2 cannot see the draft when filtering by documentId
|
// Also verify user2 cannot see the draft when filtering by documentId
|
||||||
const res2 = await server.post("/api/events.list", {
|
const res2 = await server.post("/api/events.list", user2, {
|
||||||
body: {
|
body: {
|
||||||
token: user2.getJwtToken(),
|
|
||||||
documentId: privateDraft.id,
|
documentId: privateDraft.id,
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
@@ -462,11 +443,7 @@ describe("#events.list", () => {
|
|||||||
});
|
});
|
||||||
|
|
||||||
// admin lists events
|
// admin lists events
|
||||||
const res = await server.post("/api/events.list", {
|
const res = await server.post("/api/events.list", admin);
|
||||||
body: {
|
|
||||||
token: admin.getJwtToken(),
|
|
||||||
},
|
|
||||||
});
|
|
||||||
|
|
||||||
const body = await res.json();
|
const body = await res.json();
|
||||||
expect(res.status).toEqual(200);
|
expect(res.status).toEqual(200);
|
||||||
@@ -497,9 +474,8 @@ describe("#events.list", () => {
|
|||||||
});
|
});
|
||||||
|
|
||||||
// user lists events for their collection
|
// user lists events for their collection
|
||||||
const res = await server.post("/api/events.list", {
|
const res = await server.post("/api/events.list", user, {
|
||||||
body: {
|
body: {
|
||||||
token: user.getJwtToken(),
|
|
||||||
collectionId: collection.id,
|
collectionId: collection.id,
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
|
|||||||
@@ -25,10 +25,9 @@ describe("#fileOperations.info", () => {
|
|||||||
teamId: team.id,
|
teamId: team.id,
|
||||||
userId: admin.id,
|
userId: admin.id,
|
||||||
});
|
});
|
||||||
const res = await server.post("/api/fileOperations.info", {
|
const res = await server.post("/api/fileOperations.info", admin, {
|
||||||
body: {
|
body: {
|
||||||
id: exportData.id,
|
id: exportData.id,
|
||||||
token: admin.getJwtToken(),
|
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
const body = await res.json();
|
const body = await res.json();
|
||||||
@@ -45,10 +44,9 @@ describe("#fileOperations.info", () => {
|
|||||||
teamId: team.id,
|
teamId: team.id,
|
||||||
userId: user.id,
|
userId: user.id,
|
||||||
});
|
});
|
||||||
const res = await server.post("/api/fileOperations.info", {
|
const res = await server.post("/api/fileOperations.info", user, {
|
||||||
body: {
|
body: {
|
||||||
id: exportData.id,
|
id: exportData.id,
|
||||||
token: user.getJwtToken(),
|
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
const body = await res.json();
|
const body = await res.json();
|
||||||
@@ -65,10 +63,9 @@ describe("#fileOperations.info", () => {
|
|||||||
teamId: team.id,
|
teamId: team.id,
|
||||||
userId: admin.id,
|
userId: admin.id,
|
||||||
});
|
});
|
||||||
const res = await server.post("/api/fileOperations.info", {
|
const res = await server.post("/api/fileOperations.info", user, {
|
||||||
body: {
|
body: {
|
||||||
id: exportData.id,
|
id: exportData.id,
|
||||||
token: user.getJwtToken(),
|
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
expect(res.status).toEqual(403);
|
expect(res.status).toEqual(403);
|
||||||
@@ -83,10 +80,9 @@ describe("#fileOperations.info", () => {
|
|||||||
teamId: team.id,
|
teamId: team.id,
|
||||||
userId: admin1.id,
|
userId: admin1.id,
|
||||||
});
|
});
|
||||||
const res = await server.post("/api/fileOperations.info", {
|
const res = await server.post("/api/fileOperations.info", admin2, {
|
||||||
body: {
|
body: {
|
||||||
id: exportData.id,
|
id: exportData.id,
|
||||||
token: admin2.getJwtToken(),
|
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
const body = await res.json();
|
const body = await res.json();
|
||||||
@@ -103,10 +99,9 @@ describe("#fileOperations.info", () => {
|
|||||||
teamId: team.id,
|
teamId: team.id,
|
||||||
userId: admin1.id,
|
userId: admin1.id,
|
||||||
});
|
});
|
||||||
const res = await server.post("/api/fileOperations.info", {
|
const res = await server.post("/api/fileOperations.info", admin2, {
|
||||||
body: {
|
body: {
|
||||||
id: importOp.id,
|
id: importOp.id,
|
||||||
token: admin2.getJwtToken(),
|
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
const body = await res.json();
|
const body = await res.json();
|
||||||
@@ -125,10 +120,9 @@ describe("#fileOperations.info", () => {
|
|||||||
teamId: team.id,
|
teamId: team.id,
|
||||||
userId: admin.id,
|
userId: admin.id,
|
||||||
});
|
});
|
||||||
const res = await server.post("/api/fileOperations.info", {
|
const res = await server.post("/api/fileOperations.info", admin, {
|
||||||
body: {
|
body: {
|
||||||
id: exportData.id,
|
id: exportData.id,
|
||||||
token: admin.getJwtToken(),
|
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
expect(res.status).toEqual(403);
|
expect(res.status).toEqual(403);
|
||||||
@@ -146,9 +140,8 @@ describe("#fileOperations.list", () => {
|
|||||||
teamId: team.id,
|
teamId: team.id,
|
||||||
userId: admin.id,
|
userId: admin.id,
|
||||||
});
|
});
|
||||||
const res = await server.post("/api/fileOperations.list", {
|
const res = await server.post("/api/fileOperations.list", admin, {
|
||||||
body: {
|
body: {
|
||||||
token: admin.getJwtToken(),
|
|
||||||
type: FileOperationType.Export,
|
type: FileOperationType.Export,
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
@@ -176,9 +169,8 @@ describe("#fileOperations.list", () => {
|
|||||||
userId: admin.id,
|
userId: admin.id,
|
||||||
collectionId: collection.id,
|
collectionId: collection.id,
|
||||||
});
|
});
|
||||||
const res = await server.post("/api/fileOperations.list", {
|
const res = await server.post("/api/fileOperations.list", admin, {
|
||||||
body: {
|
body: {
|
||||||
token: admin.getJwtToken(),
|
|
||||||
type: FileOperationType.Export,
|
type: FileOperationType.Export,
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
@@ -210,9 +202,8 @@ describe("#fileOperations.list", () => {
|
|||||||
await collection.destroy({ hooks: false });
|
await collection.destroy({ hooks: false });
|
||||||
const isCollectionPresent = await Collection.findByPk(collection.id);
|
const isCollectionPresent = await Collection.findByPk(collection.id);
|
||||||
expect(isCollectionPresent).toBe(null);
|
expect(isCollectionPresent).toBe(null);
|
||||||
const res = await server.post("/api/fileOperations.list", {
|
const res = await server.post("/api/fileOperations.list", admin, {
|
||||||
body: {
|
body: {
|
||||||
token: admin.getJwtToken(),
|
|
||||||
type: FileOperationType.Export,
|
type: FileOperationType.Export,
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
@@ -247,9 +238,8 @@ describe("#fileOperations.list", () => {
|
|||||||
await admin.destroy();
|
await admin.destroy();
|
||||||
const isAdminPresent = await User.findByPk(admin.id);
|
const isAdminPresent = await User.findByPk(admin.id);
|
||||||
expect(isAdminPresent).toBe(null);
|
expect(isAdminPresent).toBe(null);
|
||||||
const res = await server.post("/api/fileOperations.list", {
|
const res = await server.post("/api/fileOperations.list", admin2, {
|
||||||
body: {
|
body: {
|
||||||
token: admin2.getJwtToken(),
|
|
||||||
type: FileOperationType.Export,
|
type: FileOperationType.Export,
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
@@ -265,9 +255,8 @@ describe("#fileOperations.list", () => {
|
|||||||
|
|
||||||
it("should require admin", async () => {
|
it("should require admin", async () => {
|
||||||
const user = await buildUser();
|
const user = await buildUser();
|
||||||
const res = await server.post("/api/fileOperations.list", {
|
const res = await server.post("/api/fileOperations.list", user, {
|
||||||
body: {
|
body: {
|
||||||
token: user.getJwtToken(),
|
|
||||||
type: FileOperationType.Export,
|
type: FileOperationType.Export,
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
@@ -286,9 +275,8 @@ describe("#fileOperations.redirect", () => {
|
|||||||
teamId: team.id,
|
teamId: team.id,
|
||||||
userId: admin.id,
|
userId: admin.id,
|
||||||
});
|
});
|
||||||
const res = await server.post("/api/fileOperations.redirect", {
|
const res = await server.post("/api/fileOperations.redirect", admin, {
|
||||||
body: {
|
body: {
|
||||||
token: admin.getJwtToken(),
|
|
||||||
id: exportData.id,
|
id: exportData.id,
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
@@ -307,9 +295,8 @@ describe("#fileOperations.redirect", () => {
|
|||||||
teamId: team.id,
|
teamId: team.id,
|
||||||
userId: admin1.id,
|
userId: admin1.id,
|
||||||
});
|
});
|
||||||
const res = await server.post("/api/fileOperations.redirect", {
|
const res = await server.post("/api/fileOperations.redirect", admin2, {
|
||||||
body: {
|
body: {
|
||||||
token: admin2.getJwtToken(),
|
|
||||||
id: exportData.id,
|
id: exportData.id,
|
||||||
},
|
},
|
||||||
redirect: "manual",
|
redirect: "manual",
|
||||||
@@ -326,9 +313,8 @@ describe("#fileOperations.redirect", () => {
|
|||||||
teamId: team.id,
|
teamId: team.id,
|
||||||
userId: user.id,
|
userId: user.id,
|
||||||
});
|
});
|
||||||
const res = await server.post("/api/fileOperations.redirect", {
|
const res = await server.post("/api/fileOperations.redirect", user, {
|
||||||
body: {
|
body: {
|
||||||
token: user.getJwtToken(),
|
|
||||||
id: exportData.id,
|
id: exportData.id,
|
||||||
},
|
},
|
||||||
redirect: "manual",
|
redirect: "manual",
|
||||||
@@ -346,9 +332,8 @@ describe("#fileOperations.redirect", () => {
|
|||||||
teamId: team.id,
|
teamId: team.id,
|
||||||
userId: admin.id,
|
userId: admin.id,
|
||||||
});
|
});
|
||||||
const res = await server.post("/api/fileOperations.redirect", {
|
const res = await server.post("/api/fileOperations.redirect", user, {
|
||||||
body: {
|
body: {
|
||||||
token: user.getJwtToken(),
|
|
||||||
id: exportData.id,
|
id: exportData.id,
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
@@ -365,9 +350,8 @@ describe("#fileOperations.redirect", () => {
|
|||||||
teamId: team.id,
|
teamId: team.id,
|
||||||
userId: user.id,
|
userId: user.id,
|
||||||
});
|
});
|
||||||
const res = await server.post("/api/fileOperations.redirect", {
|
const res = await server.post("/api/fileOperations.redirect", admin, {
|
||||||
body: {
|
body: {
|
||||||
token: admin.getJwtToken(),
|
|
||||||
id: exportData.id,
|
id: exportData.id,
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
@@ -387,12 +371,15 @@ describe("#fileOperations.delete", () => {
|
|||||||
userId: admin.id,
|
userId: admin.id,
|
||||||
state: FileOperationState.Complete,
|
state: FileOperationState.Complete,
|
||||||
});
|
});
|
||||||
const deleteResponse = await server.post("/api/fileOperations.delete", {
|
const deleteResponse = await server.post(
|
||||||
body: {
|
"/api/fileOperations.delete",
|
||||||
token: admin.getJwtToken(),
|
admin,
|
||||||
id: exportData.id,
|
{
|
||||||
},
|
body: {
|
||||||
});
|
id: exportData.id,
|
||||||
|
},
|
||||||
|
}
|
||||||
|
);
|
||||||
expect(deleteResponse.status).toBe(200);
|
expect(deleteResponse.status).toBe(200);
|
||||||
expect(
|
expect(
|
||||||
await Event.count({
|
await Event.count({
|
||||||
@@ -420,9 +407,8 @@ describe("#fileOperations.delete", () => {
|
|||||||
teamId: team.id,
|
teamId: team.id,
|
||||||
userId: user.id,
|
userId: user.id,
|
||||||
});
|
});
|
||||||
const res = await server.post("/api/fileOperations.delete", {
|
const res = await server.post("/api/fileOperations.delete", admin, {
|
||||||
body: {
|
body: {
|
||||||
token: admin.getJwtToken(),
|
|
||||||
id: exportData.id,
|
id: exportData.id,
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
|
|||||||
@@ -41,19 +41,14 @@ describe("groupMemberships.list", () => {
|
|||||||
createdById: user.id,
|
createdById: user.id,
|
||||||
});
|
});
|
||||||
|
|
||||||
await server.post("/api/documents.add_group", {
|
await server.post("/api/documents.add_group", user, {
|
||||||
body: {
|
body: {
|
||||||
token: user.getJwtToken(),
|
|
||||||
id: document.id,
|
id: document.id,
|
||||||
groupId: group.id,
|
groupId: group.id,
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
|
|
||||||
const res = await server.post("/api/groupMemberships.list", {
|
const res = await server.post("/api/groupMemberships.list", member);
|
||||||
body: {
|
|
||||||
token: member.getJwtToken(),
|
|
||||||
},
|
|
||||||
});
|
|
||||||
const body = await res.json();
|
const body = await res.json();
|
||||||
expect(res.status).toEqual(200);
|
expect(res.status).toEqual(200);
|
||||||
expect(body.data).not.toBeFalsy();
|
expect(body.data).not.toBeFalsy();
|
||||||
@@ -107,20 +102,15 @@ describe("groupMemberships.list", () => {
|
|||||||
]);
|
]);
|
||||||
|
|
||||||
for (const document of documents) {
|
for (const document of documents) {
|
||||||
await server.post("/api/documents.add_group", {
|
await server.post("/api/documents.add_group", user, {
|
||||||
body: {
|
body: {
|
||||||
token: user.getJwtToken(),
|
|
||||||
id: document.id,
|
id: document.id,
|
||||||
groupId: group.id,
|
groupId: group.id,
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
const res = await server.post("/api/groupMemberships.list", {
|
const res = await server.post("/api/groupMemberships.list", member);
|
||||||
body: {
|
|
||||||
token: member.getJwtToken(),
|
|
||||||
},
|
|
||||||
});
|
|
||||||
const body = await res.json();
|
const body = await res.json();
|
||||||
expect(res.status).toEqual(200);
|
expect(res.status).toEqual(200);
|
||||||
expect(body.pagination).not.toBeFalsy();
|
expect(body.pagination).not.toBeFalsy();
|
||||||
|
|||||||
@@ -15,9 +15,8 @@ describe("#groups.create", () => {
|
|||||||
it("should create a group", async () => {
|
it("should create a group", async () => {
|
||||||
const name = "hello I am a group";
|
const name = "hello I am a group";
|
||||||
const user = await buildAdmin();
|
const user = await buildAdmin();
|
||||||
const res = await server.post("/api/groups.create", {
|
const res = await server.post("/api/groups.create", user, {
|
||||||
body: {
|
body: {
|
||||||
token: user.getJwtToken(),
|
|
||||||
name,
|
name,
|
||||||
externalId: "123",
|
externalId: "123",
|
||||||
},
|
},
|
||||||
@@ -46,9 +45,8 @@ describe("#groups.update", () => {
|
|||||||
it("should require admin", async () => {
|
it("should require admin", async () => {
|
||||||
const group = await buildGroup();
|
const group = await buildGroup();
|
||||||
const user = await buildUser();
|
const user = await buildUser();
|
||||||
const res = await server.post("/api/groups.update", {
|
const res = await server.post("/api/groups.update", user, {
|
||||||
body: {
|
body: {
|
||||||
token: user.getJwtToken(),
|
|
||||||
id: group.id,
|
id: group.id,
|
||||||
name: "Test",
|
name: "Test",
|
||||||
},
|
},
|
||||||
@@ -59,9 +57,8 @@ describe("#groups.update", () => {
|
|||||||
it("should require authorization", async () => {
|
it("should require authorization", async () => {
|
||||||
const group = await buildGroup();
|
const group = await buildGroup();
|
||||||
const user = await buildAdmin();
|
const user = await buildAdmin();
|
||||||
const res = await server.post("/api/groups.update", {
|
const res = await server.post("/api/groups.update", user, {
|
||||||
body: {
|
body: {
|
||||||
token: user.getJwtToken(),
|
|
||||||
id: group.id,
|
id: group.id,
|
||||||
name: "Test",
|
name: "Test",
|
||||||
},
|
},
|
||||||
@@ -79,9 +76,8 @@ describe("#groups.update", () => {
|
|||||||
});
|
});
|
||||||
|
|
||||||
it("allows admin to edit a group", async () => {
|
it("allows admin to edit a group", async () => {
|
||||||
const res = await server.post("/api/groups.update", {
|
const res = await server.post("/api/groups.update", user, {
|
||||||
body: {
|
body: {
|
||||||
token: user.getJwtToken(),
|
|
||||||
id: group.id,
|
id: group.id,
|
||||||
name: "Test",
|
name: "Test",
|
||||||
externalId: "123",
|
externalId: "123",
|
||||||
@@ -113,9 +109,8 @@ describe("#groups.update", () => {
|
|||||||
const admin = await buildAdmin({
|
const admin = await buildAdmin({
|
||||||
teamId: user.teamId,
|
teamId: user.teamId,
|
||||||
});
|
});
|
||||||
await server.post("/api/groups.add_user", {
|
await server.post("/api/groups.add_user", admin, {
|
||||||
body: {
|
body: {
|
||||||
token: admin.getJwtToken(),
|
|
||||||
id: group.id,
|
id: group.id,
|
||||||
userId: user.id,
|
userId: user.id,
|
||||||
permission: "admin",
|
permission: "admin",
|
||||||
@@ -124,9 +119,8 @@ describe("#groups.update", () => {
|
|||||||
});
|
});
|
||||||
|
|
||||||
it("allows group admin to edit a group", async () => {
|
it("allows group admin to edit a group", async () => {
|
||||||
const res = await server.post("/api/groups.update", {
|
const res = await server.post("/api/groups.update", user, {
|
||||||
body: {
|
body: {
|
||||||
token: user.getJwtToken(),
|
|
||||||
id: group.id,
|
id: group.id,
|
||||||
name: "Test by Group Admin",
|
name: "Test by Group Admin",
|
||||||
},
|
},
|
||||||
@@ -147,9 +141,8 @@ describe("#groups.update", () => {
|
|||||||
});
|
});
|
||||||
|
|
||||||
it("does not create an event if the update is a noop", async () => {
|
it("does not create an event if the update is a noop", async () => {
|
||||||
const res = await server.post("/api/groups.update", {
|
const res = await server.post("/api/groups.update", user, {
|
||||||
body: {
|
body: {
|
||||||
token: user.getJwtToken(),
|
|
||||||
id: group.id,
|
id: group.id,
|
||||||
name: group.name,
|
name: group.name,
|
||||||
},
|
},
|
||||||
@@ -171,9 +164,8 @@ describe("#groups.update", () => {
|
|||||||
teamId: user.teamId,
|
teamId: user.teamId,
|
||||||
name: "test",
|
name: "test",
|
||||||
});
|
});
|
||||||
const res = await server.post("/api/groups.update", {
|
const res = await server.post("/api/groups.update", user, {
|
||||||
body: {
|
body: {
|
||||||
token: user.getJwtToken(),
|
|
||||||
id: group.id,
|
id: group.id,
|
||||||
name: "TEST",
|
name: "TEST",
|
||||||
},
|
},
|
||||||
@@ -203,11 +195,7 @@ describe("#groups.list", () => {
|
|||||||
createdById: user.id,
|
createdById: user.id,
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
const res = await server.post("/api/groups.list", {
|
const res = await server.post("/api/groups.list", user);
|
||||||
body: {
|
|
||||||
token: user.getJwtToken(),
|
|
||||||
},
|
|
||||||
});
|
|
||||||
const body = await res.json();
|
const body = await res.json();
|
||||||
expect(res.status).toEqual(200);
|
expect(res.status).toEqual(200);
|
||||||
expect(body.pagination.total).toEqual(1);
|
expect(body.pagination.total).toEqual(1);
|
||||||
@@ -239,11 +227,7 @@ describe("#groups.list", () => {
|
|||||||
},
|
},
|
||||||
});
|
});
|
||||||
await user.destroy({ hooks: false });
|
await user.destroy({ hooks: false });
|
||||||
const res = await server.post("/api/groups.list", {
|
const res = await server.post("/api/groups.list", me);
|
||||||
body: {
|
|
||||||
token: me.getJwtToken(),
|
|
||||||
},
|
|
||||||
});
|
|
||||||
const body = await res.json();
|
const body = await res.json();
|
||||||
expect(res.status).toEqual(200);
|
expect(res.status).toEqual(200);
|
||||||
expect(body.data.groups.length).toEqual(1);
|
expect(body.data.groups.length).toEqual(1);
|
||||||
@@ -277,11 +261,7 @@ describe("#groups.list", () => {
|
|||||||
createdById: user.id,
|
createdById: user.id,
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
const res = await server.post("/api/groups.list", {
|
const res = await server.post("/api/groups.list", user);
|
||||||
body: {
|
|
||||||
token: user.getJwtToken(),
|
|
||||||
},
|
|
||||||
});
|
|
||||||
const body = await res.json();
|
const body = await res.json();
|
||||||
|
|
||||||
expect(res.status).toEqual(200);
|
expect(res.status).toEqual(200);
|
||||||
@@ -304,10 +284,9 @@ describe("#groups.list", () => {
|
|||||||
).toBe(true);
|
).toBe(true);
|
||||||
expect(body.policies.length).toEqual(2);
|
expect(body.policies.length).toEqual(2);
|
||||||
|
|
||||||
const anotherRes = await server.post("/api/groups.list", {
|
const anotherRes = await server.post("/api/groups.list", user, {
|
||||||
body: {
|
body: {
|
||||||
userId: user.id,
|
userId: user.id,
|
||||||
token: user.getJwtToken(),
|
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
const anotherBody = await anotherRes.json();
|
const anotherBody = await anotherRes.json();
|
||||||
@@ -335,10 +314,9 @@ describe("#groups.list", () => {
|
|||||||
const group = await buildGroup({ teamId: user.teamId });
|
const group = await buildGroup({ teamId: user.teamId });
|
||||||
await buildGroup({ teamId: user.teamId });
|
await buildGroup({ teamId: user.teamId });
|
||||||
|
|
||||||
const res = await server.post("/api/groups.list", {
|
const res = await server.post("/api/groups.list", user, {
|
||||||
body: {
|
body: {
|
||||||
name: group.name,
|
name: group.name,
|
||||||
token: user.getJwtToken(),
|
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
const body = await res.json();
|
const body = await res.json();
|
||||||
@@ -353,10 +331,9 @@ describe("#groups.list", () => {
|
|||||||
const group = await buildGroup({ teamId: user.teamId, externalId: "123" });
|
const group = await buildGroup({ teamId: user.teamId, externalId: "123" });
|
||||||
await buildGroup({ teamId: user.teamId });
|
await buildGroup({ teamId: user.teamId });
|
||||||
|
|
||||||
const res = await server.post("/api/groups.list", {
|
const res = await server.post("/api/groups.list", user, {
|
||||||
body: {
|
body: {
|
||||||
externalId: "123",
|
externalId: "123",
|
||||||
token: user.getJwtToken(),
|
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
const body = await res.json();
|
const body = await res.json();
|
||||||
@@ -371,10 +348,9 @@ describe("#groups.list", () => {
|
|||||||
await buildGroup({ teamId: user.teamId });
|
await buildGroup({ teamId: user.teamId });
|
||||||
await buildGroup({ teamId: user.teamId });
|
await buildGroup({ teamId: user.teamId });
|
||||||
|
|
||||||
const res = await server.post("/api/groups.list", {
|
const res = await server.post("/api/groups.list", user, {
|
||||||
body: {
|
body: {
|
||||||
limit: 1,
|
limit: 1,
|
||||||
token: user.getJwtToken(),
|
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
const body = await res.json();
|
const body = await res.json();
|
||||||
@@ -414,10 +390,9 @@ describe("#groups.list", () => {
|
|||||||
teamId: otherUser.teamId,
|
teamId: otherUser.teamId,
|
||||||
});
|
});
|
||||||
|
|
||||||
const res = await server.post("/api/groups.list", {
|
const res = await server.post("/api/groups.list", user, {
|
||||||
body: {
|
body: {
|
||||||
source: authProvider.name,
|
source: authProvider.name,
|
||||||
token: user.getJwtToken(),
|
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
const body = await res.json();
|
const body = await res.json();
|
||||||
@@ -433,9 +408,8 @@ describe("#groups.info", () => {
|
|||||||
const group = await buildGroup({
|
const group = await buildGroup({
|
||||||
teamId: user.teamId,
|
teamId: user.teamId,
|
||||||
});
|
});
|
||||||
const res = await server.post("/api/groups.info", {
|
const res = await server.post("/api/groups.info", user, {
|
||||||
body: {
|
body: {
|
||||||
token: user.getJwtToken(),
|
|
||||||
id: group.id,
|
id: group.id,
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
@@ -450,9 +424,8 @@ describe("#groups.info", () => {
|
|||||||
teamId: user.teamId,
|
teamId: user.teamId,
|
||||||
externalId: "456",
|
externalId: "456",
|
||||||
});
|
});
|
||||||
const res = await server.post("/api/groups.info", {
|
const res = await server.post("/api/groups.info", user, {
|
||||||
body: {
|
body: {
|
||||||
token: user.getJwtToken(),
|
|
||||||
externalId: "456",
|
externalId: "456",
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
@@ -471,9 +444,8 @@ describe("#groups.info", () => {
|
|||||||
createdById: user.id,
|
createdById: user.id,
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
const res = await server.post("/api/groups.info", {
|
const res = await server.post("/api/groups.info", user, {
|
||||||
body: {
|
body: {
|
||||||
token: user.getJwtToken(),
|
|
||||||
id: group.id,
|
id: group.id,
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
@@ -487,9 +459,8 @@ describe("#groups.info", () => {
|
|||||||
const group = await buildGroup({
|
const group = await buildGroup({
|
||||||
teamId: user.teamId,
|
teamId: user.teamId,
|
||||||
});
|
});
|
||||||
const res = await server.post("/api/groups.info", {
|
const res = await server.post("/api/groups.info", user, {
|
||||||
body: {
|
body: {
|
||||||
token: user.getJwtToken(),
|
|
||||||
id: group.id,
|
id: group.id,
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
@@ -510,9 +481,8 @@ describe("#groups.info", () => {
|
|||||||
it("should require authorization", async () => {
|
it("should require authorization", async () => {
|
||||||
const user = await buildUser();
|
const user = await buildUser();
|
||||||
const group = await buildGroup();
|
const group = await buildGroup();
|
||||||
const res = await server.post("/api/groups.info", {
|
const res = await server.post("/api/groups.info", user, {
|
||||||
body: {
|
body: {
|
||||||
token: user.getJwtToken(),
|
|
||||||
id: group.id,
|
id: group.id,
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
@@ -536,9 +506,8 @@ describe("#groups.delete", () => {
|
|||||||
it("should require admin", async () => {
|
it("should require admin", async () => {
|
||||||
const group = await buildGroup();
|
const group = await buildGroup();
|
||||||
const user = await buildUser();
|
const user = await buildUser();
|
||||||
const res = await server.post("/api/groups.delete", {
|
const res = await server.post("/api/groups.delete", user, {
|
||||||
body: {
|
body: {
|
||||||
token: user.getJwtToken(),
|
|
||||||
id: group.id,
|
id: group.id,
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
@@ -548,9 +517,8 @@ describe("#groups.delete", () => {
|
|||||||
it("should require authorization", async () => {
|
it("should require authorization", async () => {
|
||||||
const group = await buildGroup();
|
const group = await buildGroup();
|
||||||
const user = await buildAdmin();
|
const user = await buildAdmin();
|
||||||
const res = await server.post("/api/groups.delete", {
|
const res = await server.post("/api/groups.delete", user, {
|
||||||
body: {
|
body: {
|
||||||
token: user.getJwtToken(),
|
|
||||||
id: group.id,
|
id: group.id,
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
@@ -562,9 +530,8 @@ describe("#groups.delete", () => {
|
|||||||
const group = await buildGroup({
|
const group = await buildGroup({
|
||||||
teamId: user.teamId,
|
teamId: user.teamId,
|
||||||
});
|
});
|
||||||
const res = await server.post("/api/groups.delete", {
|
const res = await server.post("/api/groups.delete", user, {
|
||||||
body: {
|
body: {
|
||||||
token: user.getJwtToken(),
|
|
||||||
id: group.id,
|
id: group.id,
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
@@ -585,9 +552,8 @@ describe("#groups.memberships", () => {
|
|||||||
createdById: user.id,
|
createdById: user.id,
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
const res = await server.post("/api/groups.memberships", {
|
const res = await server.post("/api/groups.memberships", user, {
|
||||||
body: {
|
body: {
|
||||||
token: user.getJwtToken(),
|
|
||||||
id: group.id,
|
id: group.id,
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
@@ -627,9 +593,8 @@ describe("#groups.memberships", () => {
|
|||||||
},
|
},
|
||||||
});
|
});
|
||||||
await user3.destroy();
|
await user3.destroy();
|
||||||
const res = await server.post("/api/groups.memberships", {
|
const res = await server.post("/api/groups.memberships", user, {
|
||||||
body: {
|
body: {
|
||||||
token: user.getJwtToken(),
|
|
||||||
id: group.id,
|
id: group.id,
|
||||||
query: user.name.slice(0, 3),
|
query: user.name.slice(0, 3),
|
||||||
},
|
},
|
||||||
@@ -650,9 +615,8 @@ describe("#groups.memberships", () => {
|
|||||||
it("should require authorization", async () => {
|
it("should require authorization", async () => {
|
||||||
const user = await buildUser();
|
const user = await buildUser();
|
||||||
const group = await buildGroup();
|
const group = await buildGroup();
|
||||||
const res = await server.post("/api/groups.memberships", {
|
const res = await server.post("/api/groups.memberships", user, {
|
||||||
body: {
|
body: {
|
||||||
token: user.getJwtToken(),
|
|
||||||
id: group.id,
|
id: group.id,
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
@@ -666,9 +630,8 @@ describe("#groups.add_user", () => {
|
|||||||
const group = await buildGroup({
|
const group = await buildGroup({
|
||||||
teamId: user.teamId,
|
teamId: user.teamId,
|
||||||
});
|
});
|
||||||
const res = await server.post("/api/groups.add_user", {
|
const res = await server.post("/api/groups.add_user", user, {
|
||||||
body: {
|
body: {
|
||||||
token: user.getJwtToken(),
|
|
||||||
id: group.id,
|
id: group.id,
|
||||||
userId: user.id,
|
userId: user.id,
|
||||||
},
|
},
|
||||||
@@ -686,9 +649,8 @@ describe("#groups.add_user", () => {
|
|||||||
const group = await buildGroup({
|
const group = await buildGroup({
|
||||||
teamId: user.teamId,
|
teamId: user.teamId,
|
||||||
});
|
});
|
||||||
const res = await server.post("/api/groups.add_user", {
|
const res = await server.post("/api/groups.add_user", user, {
|
||||||
body: {
|
body: {
|
||||||
token: user.getJwtToken(),
|
|
||||||
id: group.id,
|
id: group.id,
|
||||||
userId: anotherUser.id,
|
userId: anotherUser.id,
|
||||||
permission: GroupPermission.Admin,
|
permission: GroupPermission.Admin,
|
||||||
@@ -712,9 +674,8 @@ describe("#groups.add_user", () => {
|
|||||||
teamId: user.teamId,
|
teamId: user.teamId,
|
||||||
});
|
});
|
||||||
const anotherUser = await buildUser();
|
const anotherUser = await buildUser();
|
||||||
const res = await server.post("/api/groups.add_user", {
|
const res = await server.post("/api/groups.add_user", user, {
|
||||||
body: {
|
body: {
|
||||||
token: user.getJwtToken(),
|
|
||||||
id: group.id,
|
id: group.id,
|
||||||
userId: anotherUser.id,
|
userId: anotherUser.id,
|
||||||
},
|
},
|
||||||
@@ -732,9 +693,8 @@ describe("#groups.add_user", () => {
|
|||||||
const anotherUser = await buildUser({
|
const anotherUser = await buildUser({
|
||||||
teamId: user.teamId,
|
teamId: user.teamId,
|
||||||
});
|
});
|
||||||
const res = await server.post("/api/groups.add_user", {
|
const res = await server.post("/api/groups.add_user", user, {
|
||||||
body: {
|
body: {
|
||||||
token: user.getJwtToken(),
|
|
||||||
id: group.id,
|
id: group.id,
|
||||||
userId: anotherUser.id,
|
userId: anotherUser.id,
|
||||||
},
|
},
|
||||||
@@ -751,18 +711,16 @@ describe("#groups.remove_user", () => {
|
|||||||
const group = await buildGroup({
|
const group = await buildGroup({
|
||||||
teamId: user.teamId,
|
teamId: user.teamId,
|
||||||
});
|
});
|
||||||
await server.post("/api/groups.add_user", {
|
await server.post("/api/groups.add_user", user, {
|
||||||
body: {
|
body: {
|
||||||
token: user.getJwtToken(),
|
|
||||||
id: group.id,
|
id: group.id,
|
||||||
userId: user.id,
|
userId: user.id,
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
const users = await group.$get("users");
|
const users = await group.$get("users");
|
||||||
expect(users.length).toEqual(1);
|
expect(users.length).toEqual(1);
|
||||||
const res = await server.post("/api/groups.remove_user", {
|
const res = await server.post("/api/groups.remove_user", user, {
|
||||||
body: {
|
body: {
|
||||||
token: user.getJwtToken(),
|
|
||||||
id: group.id,
|
id: group.id,
|
||||||
userId: user.id,
|
userId: user.id,
|
||||||
},
|
},
|
||||||
@@ -783,9 +741,8 @@ describe("#groups.remove_user", () => {
|
|||||||
teamId: user.teamId,
|
teamId: user.teamId,
|
||||||
});
|
});
|
||||||
const anotherUser = await buildUser();
|
const anotherUser = await buildUser();
|
||||||
const res = await server.post("/api/groups.remove_user", {
|
const res = await server.post("/api/groups.remove_user", user, {
|
||||||
body: {
|
body: {
|
||||||
token: user.getJwtToken(),
|
|
||||||
id: group.id,
|
id: group.id,
|
||||||
userId: anotherUser.id,
|
userId: anotherUser.id,
|
||||||
},
|
},
|
||||||
@@ -803,9 +760,8 @@ describe("#groups.remove_user", () => {
|
|||||||
const anotherUser = await buildUser({
|
const anotherUser = await buildUser({
|
||||||
teamId: user.teamId,
|
teamId: user.teamId,
|
||||||
});
|
});
|
||||||
const res = await server.post("/api/groups.remove_user", {
|
const res = await server.post("/api/groups.remove_user", user, {
|
||||||
body: {
|
body: {
|
||||||
token: user.getJwtToken(),
|
|
||||||
id: group.id,
|
id: group.id,
|
||||||
userId: anotherUser.id,
|
userId: anotherUser.id,
|
||||||
},
|
},
|
||||||
@@ -833,9 +789,8 @@ describe("#groups.update_user", () => {
|
|||||||
});
|
});
|
||||||
|
|
||||||
// Then update the user to be an admin
|
// Then update the user to be an admin
|
||||||
const res = await server.post("/api/groups.update_user", {
|
const res = await server.post("/api/groups.update_user", user, {
|
||||||
body: {
|
body: {
|
||||||
token: user.getJwtToken(),
|
|
||||||
id: group.id,
|
id: group.id,
|
||||||
userId: anotherUser.id,
|
userId: anotherUser.id,
|
||||||
permission: GroupPermission.Admin,
|
permission: GroupPermission.Admin,
|
||||||
@@ -849,9 +804,8 @@ describe("#groups.update_user", () => {
|
|||||||
);
|
);
|
||||||
|
|
||||||
// Update the user to not be an admin
|
// Update the user to not be an admin
|
||||||
const res2 = await server.post("/api/groups.update_user", {
|
const res2 = await server.post("/api/groups.update_user", user, {
|
||||||
body: {
|
body: {
|
||||||
token: user.getJwtToken(),
|
|
||||||
id: group.id,
|
id: group.id,
|
||||||
userId: anotherUser.id,
|
userId: anotherUser.id,
|
||||||
permission: "member",
|
permission: "member",
|
||||||
@@ -891,9 +845,8 @@ describe("#groups.update_user", () => {
|
|||||||
});
|
});
|
||||||
|
|
||||||
// Try to update as non-admin
|
// Try to update as non-admin
|
||||||
const res = await server.post("/api/groups.update_user", {
|
const res = await server.post("/api/groups.update_user", user, {
|
||||||
body: {
|
body: {
|
||||||
token: user.getJwtToken(),
|
|
||||||
id: group.id,
|
id: group.id,
|
||||||
userId: anotherUser.id,
|
userId: anotherUser.id,
|
||||||
permission: GroupPermission.Admin,
|
permission: GroupPermission.Admin,
|
||||||
@@ -912,9 +865,8 @@ describe("#groups.update_user", () => {
|
|||||||
teamId: user.teamId,
|
teamId: user.teamId,
|
||||||
});
|
});
|
||||||
|
|
||||||
const res = await server.post("/api/groups.update_user", {
|
const res = await server.post("/api/groups.update_user", user, {
|
||||||
body: {
|
body: {
|
||||||
token: user.getJwtToken(),
|
|
||||||
id: group.id,
|
id: group.id,
|
||||||
userId: anotherUser.id,
|
userId: anotherUser.id,
|
||||||
permission: GroupPermission.Admin,
|
permission: GroupPermission.Admin,
|
||||||
|
|||||||
@@ -37,12 +37,11 @@ describe("#imports.create", () => {
|
|||||||
});
|
});
|
||||||
const input: NotionImportInput = [{ permission: undefined }];
|
const input: NotionImportInput = [{ permission: undefined }];
|
||||||
|
|
||||||
const res = await server.post("/api/imports.create", {
|
const res = await server.post("/api/imports.create", admin, {
|
||||||
body: {
|
body: {
|
||||||
integrationId: integration.id,
|
integrationId: integration.id,
|
||||||
service: IntegrationService.Notion,
|
service: IntegrationService.Notion,
|
||||||
input,
|
input,
|
||||||
token: admin.getJwtToken(),
|
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
const body = await res.json();
|
const body = await res.json();
|
||||||
@@ -70,12 +69,11 @@ describe("#imports.create", () => {
|
|||||||
integrationId: integration.id,
|
integrationId: integration.id,
|
||||||
});
|
});
|
||||||
|
|
||||||
const res = await server.post("/api/imports.create", {
|
const res = await server.post("/api/imports.create", admin, {
|
||||||
body: {
|
body: {
|
||||||
integrationId: integration.id,
|
integrationId: integration.id,
|
||||||
service: ImportableIntegrationService.Notion,
|
service: ImportableIntegrationService.Notion,
|
||||||
input,
|
input,
|
||||||
token: admin.getJwtToken(),
|
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
|
|
||||||
@@ -91,11 +89,7 @@ describe("#imports.create", () => {
|
|||||||
it("should require user to be admin", async () => {
|
it("should require user to be admin", async () => {
|
||||||
const user = await buildUser();
|
const user = await buildUser();
|
||||||
|
|
||||||
const res = await server.post("/api/imports.create", {
|
const res = await server.post("/api/imports.create", user);
|
||||||
body: {
|
|
||||||
token: user.getJwtToken(),
|
|
||||||
},
|
|
||||||
});
|
|
||||||
|
|
||||||
expect(res.status).toEqual(403);
|
expect(res.status).toEqual(403);
|
||||||
});
|
});
|
||||||
@@ -115,10 +109,9 @@ describe("#imports.list", () => {
|
|||||||
}),
|
}),
|
||||||
]);
|
]);
|
||||||
|
|
||||||
const res = await server.post("/api/imports.list", {
|
const res = await server.post("/api/imports.list", admin, {
|
||||||
body: {
|
body: {
|
||||||
service: IntegrationService.Notion,
|
service: IntegrationService.Notion,
|
||||||
token: admin.getJwtToken(),
|
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
const body = await res.json();
|
const body = await res.json();
|
||||||
@@ -143,11 +136,7 @@ describe("#imports.list", () => {
|
|||||||
it("should require user to be admin", async () => {
|
it("should require user to be admin", async () => {
|
||||||
const user = await buildUser();
|
const user = await buildUser();
|
||||||
|
|
||||||
const res = await server.post("/api/imports.list", {
|
const res = await server.post("/api/imports.list", user);
|
||||||
body: {
|
|
||||||
token: user.getJwtToken(),
|
|
||||||
},
|
|
||||||
});
|
|
||||||
|
|
||||||
expect(res.status).toEqual(403);
|
expect(res.status).toEqual(403);
|
||||||
});
|
});
|
||||||
@@ -161,10 +150,9 @@ describe("#imports.info", () => {
|
|||||||
teamId: admin.teamId,
|
teamId: admin.teamId,
|
||||||
});
|
});
|
||||||
|
|
||||||
const res = await server.post("/api/imports.info", {
|
const res = await server.post("/api/imports.info", admin, {
|
||||||
body: {
|
body: {
|
||||||
id: importModel.id,
|
id: importModel.id,
|
||||||
token: admin.getJwtToken(),
|
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
const body = await res.json();
|
const body = await res.json();
|
||||||
@@ -182,11 +170,7 @@ describe("#imports.info", () => {
|
|||||||
it("should require user to be admin", async () => {
|
it("should require user to be admin", async () => {
|
||||||
const user = await buildUser();
|
const user = await buildUser();
|
||||||
|
|
||||||
const res = await server.post("/api/imports.info", {
|
const res = await server.post("/api/imports.info", user);
|
||||||
body: {
|
|
||||||
token: user.getJwtToken(),
|
|
||||||
},
|
|
||||||
});
|
|
||||||
|
|
||||||
expect(res.status).toEqual(403);
|
expect(res.status).toEqual(403);
|
||||||
});
|
});
|
||||||
@@ -201,10 +185,9 @@ describe("#imports.delete", () => {
|
|||||||
teamId: admin.teamId,
|
teamId: admin.teamId,
|
||||||
});
|
});
|
||||||
|
|
||||||
const res = await server.post("/api/imports.delete", {
|
const res = await server.post("/api/imports.delete", admin, {
|
||||||
body: {
|
body: {
|
||||||
id: importModel.id,
|
id: importModel.id,
|
||||||
token: admin.getJwtToken(),
|
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
const body = await res.json();
|
const body = await res.json();
|
||||||
@@ -221,10 +204,9 @@ describe("#imports.delete", () => {
|
|||||||
teamId: admin.teamId,
|
teamId: admin.teamId,
|
||||||
});
|
});
|
||||||
|
|
||||||
const res = await server.post("/api/imports.delete", {
|
const res = await server.post("/api/imports.delete", admin, {
|
||||||
body: {
|
body: {
|
||||||
id: importModel.id,
|
id: importModel.id,
|
||||||
token: admin.getJwtToken(),
|
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
|
|
||||||
@@ -240,11 +222,7 @@ describe("#imports.delete", () => {
|
|||||||
it("should require user to be admin", async () => {
|
it("should require user to be admin", async () => {
|
||||||
const user = await buildUser();
|
const user = await buildUser();
|
||||||
|
|
||||||
const res = await server.post("/api/imports.delete", {
|
const res = await server.post("/api/imports.delete", user);
|
||||||
body: {
|
|
||||||
token: user.getJwtToken(),
|
|
||||||
},
|
|
||||||
});
|
|
||||||
|
|
||||||
expect(res.status).toEqual(403);
|
expect(res.status).toEqual(403);
|
||||||
});
|
});
|
||||||
@@ -258,10 +236,9 @@ describe("#imports.cancel", () => {
|
|||||||
teamId: admin.teamId,
|
teamId: admin.teamId,
|
||||||
});
|
});
|
||||||
|
|
||||||
const res = await server.post("/api/imports.cancel", {
|
const res = await server.post("/api/imports.cancel", admin, {
|
||||||
body: {
|
body: {
|
||||||
id: importModel.id,
|
id: importModel.id,
|
||||||
token: admin.getJwtToken(),
|
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
const body = await res.json();
|
const body = await res.json();
|
||||||
@@ -279,10 +256,9 @@ describe("#imports.cancel", () => {
|
|||||||
teamId: admin.teamId,
|
teamId: admin.teamId,
|
||||||
});
|
});
|
||||||
|
|
||||||
const res = await server.post("/api/imports.cancel", {
|
const res = await server.post("/api/imports.cancel", admin, {
|
||||||
body: {
|
body: {
|
||||||
id: importModel.id,
|
id: importModel.id,
|
||||||
token: admin.getJwtToken(),
|
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
|
|
||||||
@@ -298,11 +274,7 @@ describe("#imports.cancel", () => {
|
|||||||
it("should require user to be admin", async () => {
|
it("should require user to be admin", async () => {
|
||||||
const user = await buildUser();
|
const user = await buildUser();
|
||||||
|
|
||||||
const res = await server.post("/api/imports.cancel", {
|
const res = await server.post("/api/imports.cancel", user);
|
||||||
body: {
|
|
||||||
token: user.getJwtToken(),
|
|
||||||
},
|
|
||||||
});
|
|
||||||
|
|
||||||
expect(res.status).toEqual(403);
|
expect(res.status).toEqual(403);
|
||||||
});
|
});
|
||||||
|
|||||||
@@ -64,11 +64,7 @@ describe("installation.info", () => {
|
|||||||
|
|
||||||
it.skip("should return installation information", async () => {
|
it.skip("should return installation information", async () => {
|
||||||
const user = await buildUser();
|
const user = await buildUser();
|
||||||
const res = await server.post("/api/installation.info", {
|
const res = await server.post("/api/installation.info", user);
|
||||||
body: {
|
|
||||||
token: user.getJwtToken(),
|
|
||||||
},
|
|
||||||
});
|
|
||||||
|
|
||||||
const body = await res.json();
|
const body = await res.json();
|
||||||
|
|
||||||
|
|||||||
@@ -20,10 +20,9 @@ describe("#integrations.update", () => {
|
|||||||
teamId: team.id,
|
teamId: team.id,
|
||||||
});
|
});
|
||||||
|
|
||||||
const res = await server.post("/api/integrations.update", {
|
const res = await server.post("/api/integrations.update", user, {
|
||||||
body: {
|
body: {
|
||||||
events: ["documents.update"],
|
events: ["documents.update"],
|
||||||
token: user.getJwtToken(),
|
|
||||||
id: integration.id,
|
id: integration.id,
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
@@ -38,9 +37,8 @@ describe("#integrations.update", () => {
|
|||||||
const integration = await buildIntegration({
|
const integration = await buildIntegration({
|
||||||
userId: user.id,
|
userId: user.id,
|
||||||
});
|
});
|
||||||
const res = await server.post("/api/integrations.update", {
|
const res = await server.post("/api/integrations.update", user, {
|
||||||
body: {
|
body: {
|
||||||
token: user.getJwtToken(),
|
|
||||||
id: integration.id,
|
id: integration.id,
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
@@ -58,9 +56,8 @@ describe("#integrations.update", () => {
|
|||||||
settings: { url: "https://example.com" },
|
settings: { url: "https://example.com" },
|
||||||
});
|
});
|
||||||
|
|
||||||
const res = await server.post("/api/integrations.update", {
|
const res = await server.post("/api/integrations.update", admin, {
|
||||||
body: {
|
body: {
|
||||||
token: admin.getJwtToken(),
|
|
||||||
id: integration.id,
|
id: integration.id,
|
||||||
settings: { url: "https://foo.bar" },
|
settings: { url: "https://foo.bar" },
|
||||||
},
|
},
|
||||||
@@ -82,9 +79,8 @@ describe("#integrations.update", () => {
|
|||||||
settings: { url: "https://example.com" },
|
settings: { url: "https://example.com" },
|
||||||
});
|
});
|
||||||
|
|
||||||
const res = await server.post("/api/integrations.update", {
|
const res = await server.post("/api/integrations.update", admin, {
|
||||||
body: {
|
body: {
|
||||||
token: admin.getJwtToken(),
|
|
||||||
id: integration.id,
|
id: integration.id,
|
||||||
settings: { url: "https://grist.example.com" },
|
settings: { url: "https://grist.example.com" },
|
||||||
},
|
},
|
||||||
@@ -100,9 +96,8 @@ describe("#integrations.create", () => {
|
|||||||
it("should fail with status 400 bad request for an invalid url value supplied in settings param", async () => {
|
it("should fail with status 400 bad request for an invalid url value supplied in settings param", async () => {
|
||||||
const admin = await buildAdmin();
|
const admin = await buildAdmin();
|
||||||
|
|
||||||
const res = await server.post("/api/integrations.create", {
|
const res = await server.post("/api/integrations.create", admin, {
|
||||||
body: {
|
body: {
|
||||||
token: admin.getJwtToken(),
|
|
||||||
type: IntegrationType.Embed,
|
type: IntegrationType.Embed,
|
||||||
service: IntegrationService.Diagrams,
|
service: IntegrationService.Diagrams,
|
||||||
settings: { url: "not a url" },
|
settings: { url: "not a url" },
|
||||||
@@ -116,9 +111,8 @@ describe("#integrations.create", () => {
|
|||||||
it("should succeed with status 200 ok for an integration without url", async () => {
|
it("should succeed with status 200 ok for an integration without url", async () => {
|
||||||
const admin = await buildAdmin();
|
const admin = await buildAdmin();
|
||||||
|
|
||||||
const res = await server.post("/api/integrations.create", {
|
const res = await server.post("/api/integrations.create", admin, {
|
||||||
body: {
|
body: {
|
||||||
token: admin.getJwtToken(),
|
|
||||||
type: IntegrationType.Analytics,
|
type: IntegrationType.Analytics,
|
||||||
service: IntegrationService.GoogleAnalytics,
|
service: IntegrationService.GoogleAnalytics,
|
||||||
settings: { measurementId: "123" },
|
settings: { measurementId: "123" },
|
||||||
@@ -135,9 +129,8 @@ describe("#integrations.create", () => {
|
|||||||
it("should succeed with status 200 ok for an grist integration", async () => {
|
it("should succeed with status 200 ok for an grist integration", async () => {
|
||||||
const admin = await buildAdmin();
|
const admin = await buildAdmin();
|
||||||
|
|
||||||
const res = await server.post("/api/integrations.create", {
|
const res = await server.post("/api/integrations.create", admin, {
|
||||||
body: {
|
body: {
|
||||||
token: admin.getJwtToken(),
|
|
||||||
type: IntegrationType.Embed,
|
type: IntegrationType.Embed,
|
||||||
service: IntegrationService.Grist,
|
service: IntegrationService.Grist,
|
||||||
settings: { url: "https://grist.example.com" },
|
settings: { url: "https://grist.example.com" },
|
||||||
@@ -171,9 +164,8 @@ describe("#integrations.delete", () => {
|
|||||||
it("should fail with status 403 unauthorized when the user is not an admin", async () => {
|
it("should fail with status 403 unauthorized when the user is not an admin", async () => {
|
||||||
const user = await buildUser();
|
const user = await buildUser();
|
||||||
|
|
||||||
const res = await server.post("/api/integrations.delete", {
|
const res = await server.post("/api/integrations.delete", user, {
|
||||||
body: {
|
body: {
|
||||||
token: user.getJwtToken(),
|
|
||||||
id: integration.id,
|
id: integration.id,
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
@@ -181,11 +173,7 @@ describe("#integrations.delete", () => {
|
|||||||
});
|
});
|
||||||
|
|
||||||
it("should fail with status 400 bad request when id is not sent", async () => {
|
it("should fail with status 400 bad request when id is not sent", async () => {
|
||||||
const res = await server.post("/api/integrations.delete", {
|
const res = await server.post("/api/integrations.delete", admin);
|
||||||
body: {
|
|
||||||
token: admin.getJwtToken(),
|
|
||||||
},
|
|
||||||
});
|
|
||||||
|
|
||||||
const body = await res.json();
|
const body = await res.json();
|
||||||
expect(res.status).toEqual(400);
|
expect(res.status).toEqual(400);
|
||||||
@@ -202,9 +190,8 @@ describe("#integrations.delete", () => {
|
|||||||
service: IntegrationService.Slack,
|
service: IntegrationService.Slack,
|
||||||
type: IntegrationType.LinkedAccount,
|
type: IntegrationType.LinkedAccount,
|
||||||
});
|
});
|
||||||
const res = await server.post("/api/integrations.delete", {
|
const res = await server.post("/api/integrations.delete", user, {
|
||||||
body: {
|
body: {
|
||||||
token: user.getJwtToken(),
|
|
||||||
id: linkedAccount.id,
|
id: linkedAccount.id,
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
@@ -212,9 +199,8 @@ describe("#integrations.delete", () => {
|
|||||||
});
|
});
|
||||||
|
|
||||||
it("should succeed with status 200 ok when integration is deleted", async () => {
|
it("should succeed with status 200 ok when integration is deleted", async () => {
|
||||||
const res = await server.post("/api/integrations.delete", {
|
const res = await server.post("/api/integrations.delete", admin, {
|
||||||
body: {
|
body: {
|
||||||
token: admin.getJwtToken(),
|
|
||||||
id: integration.id,
|
id: integration.id,
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
|
|||||||
@@ -6,9 +6,8 @@ const server = getTestServer();
|
|||||||
describe("#pagination", () => {
|
describe("#pagination", () => {
|
||||||
it("should allow offset and limit", async () => {
|
it("should allow offset and limit", async () => {
|
||||||
const user = await buildUser();
|
const user = await buildUser();
|
||||||
const res = await server.post("/api/users.list", {
|
const res = await server.post("/api/users.list", user, {
|
||||||
body: {
|
body: {
|
||||||
token: user.getJwtToken(),
|
|
||||||
limit: 1,
|
limit: 1,
|
||||||
offset: 1,
|
offset: 1,
|
||||||
},
|
},
|
||||||
@@ -18,9 +17,8 @@ describe("#pagination", () => {
|
|||||||
|
|
||||||
it("should not allow negative limit", async () => {
|
it("should not allow negative limit", async () => {
|
||||||
const user = await buildUser();
|
const user = await buildUser();
|
||||||
const res = await server.post("/api/users.list", {
|
const res = await server.post("/api/users.list", user, {
|
||||||
body: {
|
body: {
|
||||||
token: user.getJwtToken(),
|
|
||||||
limit: -1,
|
limit: -1,
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
@@ -29,9 +27,8 @@ describe("#pagination", () => {
|
|||||||
|
|
||||||
it("should not allow non-integer limit", async () => {
|
it("should not allow non-integer limit", async () => {
|
||||||
const user = await buildUser();
|
const user = await buildUser();
|
||||||
const res = await server.post("/api/users.list", {
|
const res = await server.post("/api/users.list", user, {
|
||||||
body: {
|
body: {
|
||||||
token: user.getJwtToken(),
|
|
||||||
limit: "blah",
|
limit: "blah",
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
@@ -40,9 +37,8 @@ describe("#pagination", () => {
|
|||||||
|
|
||||||
it("should not allow negative offset", async () => {
|
it("should not allow negative offset", async () => {
|
||||||
const user = await buildUser();
|
const user = await buildUser();
|
||||||
const res = await server.post("/api/users.list", {
|
const res = await server.post("/api/users.list", user, {
|
||||||
body: {
|
body: {
|
||||||
token: user.getJwtToken(),
|
|
||||||
offset: -1,
|
offset: -1,
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
@@ -51,9 +47,8 @@ describe("#pagination", () => {
|
|||||||
|
|
||||||
it("should not allow non-integer offset", async () => {
|
it("should not allow non-integer offset", async () => {
|
||||||
const user = await buildUser();
|
const user = await buildUser();
|
||||||
const res = await server.post("/api/users.list", {
|
const res = await server.post("/api/users.list", user, {
|
||||||
body: {
|
body: {
|
||||||
token: user.getJwtToken(),
|
|
||||||
offset: "blah",
|
offset: "blah",
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
|
|||||||
@@ -64,11 +64,7 @@ describe("#notifications.list", () => {
|
|||||||
}),
|
}),
|
||||||
]);
|
]);
|
||||||
|
|
||||||
const res = await server.post("/api/notifications.list", {
|
const res = await server.post("/api/notifications.list", user);
|
||||||
body: {
|
|
||||||
token: user.getJwtToken(),
|
|
||||||
},
|
|
||||||
});
|
|
||||||
const body = await res.json();
|
const body = await res.json();
|
||||||
|
|
||||||
expect(res.status).toBe(200);
|
expect(res.status).toBe(200);
|
||||||
@@ -130,9 +126,8 @@ describe("#notifications.list", () => {
|
|||||||
}),
|
}),
|
||||||
]);
|
]);
|
||||||
|
|
||||||
const res = await server.post("/api/notifications.list", {
|
const res = await server.post("/api/notifications.list", user, {
|
||||||
body: {
|
body: {
|
||||||
token: user.getJwtToken(),
|
|
||||||
eventType: NotificationEventType.MentionedInComment,
|
eventType: NotificationEventType.MentionedInComment,
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
@@ -197,9 +192,8 @@ describe("#notifications.list", () => {
|
|||||||
}),
|
}),
|
||||||
]);
|
]);
|
||||||
|
|
||||||
const res = await server.post("/api/notifications.list", {
|
const res = await server.post("/api/notifications.list", user, {
|
||||||
body: {
|
body: {
|
||||||
token: user.getJwtToken(),
|
|
||||||
archived: true,
|
archived: true,
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
@@ -265,9 +259,8 @@ describe("#notifications.list", () => {
|
|||||||
}),
|
}),
|
||||||
]);
|
]);
|
||||||
|
|
||||||
const res = await server.post("/api/notifications.list", {
|
const res = await server.post("/api/notifications.list", user, {
|
||||||
body: {
|
body: {
|
||||||
token: user.getJwtToken(),
|
|
||||||
archived: false,
|
archived: false,
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
@@ -385,9 +378,8 @@ describe("#notifications.update", () => {
|
|||||||
|
|
||||||
expect(notification.viewedAt).toBeNull();
|
expect(notification.viewedAt).toBeNull();
|
||||||
|
|
||||||
const res = await server.post("/api/notifications.update", {
|
const res = await server.post("/api/notifications.update", user, {
|
||||||
body: {
|
body: {
|
||||||
token: user.getJwtToken(),
|
|
||||||
id: notification.id,
|
id: notification.id,
|
||||||
viewedAt: new Date(),
|
viewedAt: new Date(),
|
||||||
},
|
},
|
||||||
@@ -425,9 +417,8 @@ describe("#notifications.update", () => {
|
|||||||
|
|
||||||
expect(notification.archivedAt).toBeNull();
|
expect(notification.archivedAt).toBeNull();
|
||||||
|
|
||||||
const res = await server.post("/api/notifications.update", {
|
const res = await server.post("/api/notifications.update", user, {
|
||||||
body: {
|
body: {
|
||||||
token: user.getJwtToken(),
|
|
||||||
id: notification.id,
|
id: notification.id,
|
||||||
archivedAt: new Date(),
|
archivedAt: new Date(),
|
||||||
},
|
},
|
||||||
@@ -483,11 +474,7 @@ describe("#notifications.update_all", () => {
|
|||||||
}),
|
}),
|
||||||
]);
|
]);
|
||||||
|
|
||||||
const res = await server.post("/api/notifications.update_all", {
|
const res = await server.post("/api/notifications.update_all", user);
|
||||||
body: {
|
|
||||||
token: user.getJwtToken(),
|
|
||||||
},
|
|
||||||
});
|
|
||||||
const body = await res.json();
|
const body = await res.json();
|
||||||
expect(res.status).toBe(200);
|
expect(res.status).toBe(200);
|
||||||
expect(body.success).toBe(true);
|
expect(body.success).toBe(true);
|
||||||
@@ -536,9 +523,8 @@ describe("#notifications.update_all", () => {
|
|||||||
}),
|
}),
|
||||||
]);
|
]);
|
||||||
|
|
||||||
const res = await server.post("/api/notifications.update_all", {
|
const res = await server.post("/api/notifications.update_all", user, {
|
||||||
body: {
|
body: {
|
||||||
token: user.getJwtToken(),
|
|
||||||
viewedAt: new Date(),
|
viewedAt: new Date(),
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
@@ -591,9 +577,8 @@ describe("#notifications.update_all", () => {
|
|||||||
}),
|
}),
|
||||||
]);
|
]);
|
||||||
|
|
||||||
const res = await server.post("/api/notifications.update_all", {
|
const res = await server.post("/api/notifications.update_all", user, {
|
||||||
body: {
|
body: {
|
||||||
token: user.getJwtToken(),
|
|
||||||
viewedAt: null,
|
viewedAt: null,
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
@@ -645,9 +630,8 @@ describe("#notifications.update_all", () => {
|
|||||||
}),
|
}),
|
||||||
]);
|
]);
|
||||||
|
|
||||||
const res = await server.post("/api/notifications.update_all", {
|
const res = await server.post("/api/notifications.update_all", user, {
|
||||||
body: {
|
body: {
|
||||||
token: user.getJwtToken(),
|
|
||||||
archivedAt: new Date(),
|
archivedAt: new Date(),
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
@@ -700,9 +684,8 @@ describe("#notifications.update_all", () => {
|
|||||||
}),
|
}),
|
||||||
]);
|
]);
|
||||||
|
|
||||||
const res = await server.post("/api/notifications.update_all", {
|
const res = await server.post("/api/notifications.update_all", user, {
|
||||||
body: {
|
body: {
|
||||||
token: user.getJwtToken(),
|
|
||||||
archivedAt: null,
|
archivedAt: null,
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
|
|||||||
@@ -32,11 +32,7 @@ describe("oauthAuthentications.list", () => {
|
|||||||
scope: ["read"],
|
scope: ["read"],
|
||||||
});
|
});
|
||||||
|
|
||||||
const res = await server.post("/api/oauthAuthentications.list", {
|
const res = await server.post("/api/oauthAuthentications.list", user);
|
||||||
body: {
|
|
||||||
token: user.getJwtToken(),
|
|
||||||
},
|
|
||||||
});
|
|
||||||
|
|
||||||
const body = await res.json();
|
const body = await res.json();
|
||||||
expect(res.status).toEqual(200);
|
expect(res.status).toEqual(200);
|
||||||
@@ -63,11 +59,7 @@ describe("oauthAuthentications.list", () => {
|
|||||||
scope: ["read"],
|
scope: ["read"],
|
||||||
});
|
});
|
||||||
|
|
||||||
const res = await server.post("/api/oauthAuthentications.list", {
|
const res = await server.post("/api/oauthAuthentications.list", user);
|
||||||
body: {
|
|
||||||
token: user.getJwtToken(),
|
|
||||||
},
|
|
||||||
});
|
|
||||||
|
|
||||||
const body = await res.json();
|
const body = await res.json();
|
||||||
expect(res.status).toEqual(200);
|
expect(res.status).toEqual(200);
|
||||||
@@ -87,9 +79,8 @@ describe("oauthAuthentications.delete", () => {
|
|||||||
const team = await buildTeam();
|
const team = await buildTeam();
|
||||||
const user = await buildUser({ teamId: team.id });
|
const user = await buildUser({ teamId: team.id });
|
||||||
|
|
||||||
const res = await server.post("/api/oauthAuthentications.delete", {
|
const res = await server.post("/api/oauthAuthentications.delete", user, {
|
||||||
body: {
|
body: {
|
||||||
token: user.getJwtToken(),
|
|
||||||
oauthClientId: "",
|
oauthClientId: "",
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
@@ -113,9 +104,8 @@ describe("oauthAuthentications.delete", () => {
|
|||||||
scope: ["read"],
|
scope: ["read"],
|
||||||
});
|
});
|
||||||
|
|
||||||
const res = await server.post("/api/oauthAuthentications.delete", {
|
const res = await server.post("/api/oauthAuthentications.delete", user, {
|
||||||
body: {
|
body: {
|
||||||
token: user.getJwtToken(),
|
|
||||||
oauthClientId: oauthClient.id,
|
oauthClientId: oauthClient.id,
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
@@ -154,9 +144,8 @@ describe("oauthAuthentications.delete", () => {
|
|||||||
scope: ["write"],
|
scope: ["write"],
|
||||||
});
|
});
|
||||||
|
|
||||||
const res = await server.post("/api/oauthAuthentications.delete", {
|
const res = await server.post("/api/oauthAuthentications.delete", user, {
|
||||||
body: {
|
body: {
|
||||||
token: user.getJwtToken(),
|
|
||||||
oauthClientId: oauthClient.id,
|
oauthClientId: oauthClient.id,
|
||||||
scope: ["read"],
|
scope: ["read"],
|
||||||
},
|
},
|
||||||
@@ -193,9 +182,8 @@ describe("oauthAuthentications.delete", () => {
|
|||||||
scope: ["read"],
|
scope: ["read"],
|
||||||
});
|
});
|
||||||
|
|
||||||
await server.post("/api/oauthAuthentications.delete", {
|
await server.post("/api/oauthAuthentications.delete", user, {
|
||||||
body: {
|
body: {
|
||||||
token: user.getJwtToken(),
|
|
||||||
oauthClientId: oauthClient.id,
|
oauthClientId: oauthClient.id,
|
||||||
scope: "read",
|
scope: "read",
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -41,11 +41,7 @@ describe("oauthClients.list", () => {
|
|||||||
published: false,
|
published: false,
|
||||||
});
|
});
|
||||||
|
|
||||||
const res = await server.post("/api/oauthClients.list", {
|
const res = await server.post("/api/oauthClients.list", admin);
|
||||||
body: {
|
|
||||||
token: admin.getJwtToken(),
|
|
||||||
},
|
|
||||||
});
|
|
||||||
|
|
||||||
const body = await res.json();
|
const body = await res.json();
|
||||||
expect(res.status).toEqual(200);
|
expect(res.status).toEqual(200);
|
||||||
@@ -78,9 +74,8 @@ describe("oauthClients.info", () => {
|
|||||||
redirectUris: ["https://example.com/callback"],
|
redirectUris: ["https://example.com/callback"],
|
||||||
});
|
});
|
||||||
|
|
||||||
const res = await server.post("/api/oauthClients.info", {
|
const res = await server.post("/api/oauthClients.info", user, {
|
||||||
body: {
|
body: {
|
||||||
token: user.getJwtToken(),
|
|
||||||
id: client.id,
|
id: client.id,
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
@@ -105,9 +100,8 @@ describe("oauthClients.info", () => {
|
|||||||
redirectUris: ["https://example.com/callback"],
|
redirectUris: ["https://example.com/callback"],
|
||||||
});
|
});
|
||||||
|
|
||||||
const res = await server.post("/api/oauthClients.info", {
|
const res = await server.post("/api/oauthClients.info", user, {
|
||||||
body: {
|
body: {
|
||||||
token: user.getJwtToken(),
|
|
||||||
id: client.id,
|
id: client.id,
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
@@ -132,9 +126,8 @@ describe("oauthClients.info", () => {
|
|||||||
published: true,
|
published: true,
|
||||||
});
|
});
|
||||||
|
|
||||||
const res = await server.post("/api/oauthClients.info", {
|
const res = await server.post("/api/oauthClients.info", user, {
|
||||||
body: {
|
body: {
|
||||||
token: user.getJwtToken(),
|
|
||||||
id: client.id,
|
id: client.id,
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
@@ -160,9 +153,8 @@ describe("oauthClients.info", () => {
|
|||||||
published: true,
|
published: true,
|
||||||
});
|
});
|
||||||
|
|
||||||
const res = await server.post("/api/oauthClients.info", {
|
const res = await server.post("/api/oauthClients.info", user, {
|
||||||
body: {
|
body: {
|
||||||
token: user.getJwtToken(),
|
|
||||||
clientId: client.clientId,
|
clientId: client.clientId,
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
@@ -192,9 +184,8 @@ describe("oauthClients.info", () => {
|
|||||||
});
|
});
|
||||||
|
|
||||||
// Test with valid redirectUri
|
// Test with valid redirectUri
|
||||||
const validRes = await server.post("/api/oauthClients.info", {
|
const validRes = await server.post("/api/oauthClients.info", user, {
|
||||||
body: {
|
body: {
|
||||||
token: user.getJwtToken(),
|
|
||||||
clientId: client.clientId,
|
clientId: client.clientId,
|
||||||
redirectUri: "https://example.com/callback",
|
redirectUri: "https://example.com/callback",
|
||||||
},
|
},
|
||||||
@@ -205,9 +196,8 @@ describe("oauthClients.info", () => {
|
|||||||
expect(validBody.data.name).toEqual("Test Client");
|
expect(validBody.data.name).toEqual("Test Client");
|
||||||
|
|
||||||
// Test with invalid redirectUri
|
// Test with invalid redirectUri
|
||||||
const invalidRes = await server.post("/api/oauthClients.info", {
|
const invalidRes = await server.post("/api/oauthClients.info", user, {
|
||||||
body: {
|
body: {
|
||||||
token: user.getJwtToken(),
|
|
||||||
clientId: client.clientId,
|
clientId: client.clientId,
|
||||||
redirectUri: "https://malicious.com/callback",
|
redirectUri: "https://malicious.com/callback",
|
||||||
},
|
},
|
||||||
@@ -228,9 +218,8 @@ describe("oauthClients.create", () => {
|
|||||||
const team = await buildTeam();
|
const team = await buildTeam();
|
||||||
const admin = await buildAdmin({ teamId: team.id });
|
const admin = await buildAdmin({ teamId: team.id });
|
||||||
|
|
||||||
const res = await server.post("/api/oauthClients.create", {
|
const res = await server.post("/api/oauthClients.create", admin, {
|
||||||
body: {
|
body: {
|
||||||
token: admin.getJwtToken(),
|
|
||||||
name: "Test Client",
|
name: "Test Client",
|
||||||
redirectUris: ["https://example.com/callback"],
|
redirectUris: ["https://example.com/callback"],
|
||||||
},
|
},
|
||||||
@@ -264,9 +253,8 @@ describe("oauthclients.update", () => {
|
|||||||
published: true,
|
published: true,
|
||||||
});
|
});
|
||||||
|
|
||||||
const res = await server.post("/api/oauthClients.update", {
|
const res = await server.post("/api/oauthClients.update", admin, {
|
||||||
body: {
|
body: {
|
||||||
token: admin.getJwtToken(),
|
|
||||||
id: client.id,
|
id: client.id,
|
||||||
published: false,
|
published: false,
|
||||||
name: "Renamed",
|
name: "Renamed",
|
||||||
@@ -301,9 +289,8 @@ describe("oauthClients.rotate_secret", () => {
|
|||||||
|
|
||||||
const originalSecret = client.clientSecret;
|
const originalSecret = client.clientSecret;
|
||||||
|
|
||||||
const res = await server.post("/api/oauthClients.rotate_secret", {
|
const res = await server.post("/api/oauthClients.rotate_secret", admin, {
|
||||||
body: {
|
body: {
|
||||||
token: admin.getJwtToken(),
|
|
||||||
id: client.id,
|
id: client.id,
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
@@ -335,9 +322,8 @@ describe("oauthClients.delete", () => {
|
|||||||
redirectUris: ["https://example.com/callback"],
|
redirectUris: ["https://example.com/callback"],
|
||||||
});
|
});
|
||||||
|
|
||||||
const res = await server.post("/api/oauthClients.delete", {
|
const res = await server.post("/api/oauthClients.delete", admin, {
|
||||||
body: {
|
body: {
|
||||||
token: admin.getJwtToken(),
|
|
||||||
id: client.id,
|
id: client.id,
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
|
|||||||
@@ -47,20 +47,15 @@ describe("#pins.create", () => {
|
|||||||
});
|
});
|
||||||
|
|
||||||
it("should fail with status 400 bad request when documentId is not suppled", async () => {
|
it("should fail with status 400 bad request when documentId is not suppled", async () => {
|
||||||
const res = await server.post("/api/pins.create", {
|
const res = await server.post("/api/pins.create", user);
|
||||||
body: {
|
|
||||||
token: user.getJwtToken(),
|
|
||||||
},
|
|
||||||
});
|
|
||||||
const body = await res.json();
|
const body = await res.json();
|
||||||
expect(res.status).toEqual(400);
|
expect(res.status).toEqual(400);
|
||||||
expect(body.message).toEqual("documentId: required");
|
expect(body.message).toEqual("documentId: required");
|
||||||
});
|
});
|
||||||
|
|
||||||
it("should fail with status 400 bad request when documentId is invalid", async () => {
|
it("should fail with status 400 bad request when documentId is invalid", async () => {
|
||||||
const res = await server.post("/api/pins.create", {
|
const res = await server.post("/api/pins.create", user, {
|
||||||
body: {
|
body: {
|
||||||
token: user.getJwtToken(),
|
|
||||||
documentId: "foo",
|
documentId: "foo",
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
@@ -70,9 +65,8 @@ describe("#pins.create", () => {
|
|||||||
});
|
});
|
||||||
|
|
||||||
it("should fail with status 400 bad request when index is invalid", async () => {
|
it("should fail with status 400 bad request when index is invalid", async () => {
|
||||||
const res = await server.post("/api/pins.create", {
|
const res = await server.post("/api/pins.create", user, {
|
||||||
body: {
|
body: {
|
||||||
token: user.getJwtToken(),
|
|
||||||
documentId: "foo1234567",
|
documentId: "foo1234567",
|
||||||
index: "😀",
|
index: "😀",
|
||||||
},
|
},
|
||||||
@@ -83,9 +77,8 @@ describe("#pins.create", () => {
|
|||||||
});
|
});
|
||||||
|
|
||||||
it("should fail with status 403 forbidden when user is disallowed to read the document", async () => {
|
it("should fail with status 403 forbidden when user is disallowed to read the document", async () => {
|
||||||
const res = await server.post("/api/pins.create", {
|
const res = await server.post("/api/pins.create", anotherUser, {
|
||||||
body: {
|
body: {
|
||||||
token: anotherUser.getJwtToken(),
|
|
||||||
documentId: document.id,
|
documentId: document.id,
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
@@ -95,9 +88,8 @@ describe("#pins.create", () => {
|
|||||||
});
|
});
|
||||||
|
|
||||||
it("should fail with status 403 forbidden when user is disallowed to update the collection", async () => {
|
it("should fail with status 403 forbidden when user is disallowed to update the collection", async () => {
|
||||||
const res = await server.post("/api/pins.create", {
|
const res = await server.post("/api/pins.create", user, {
|
||||||
body: {
|
body: {
|
||||||
token: user.getJwtToken(),
|
|
||||||
documentId: document.id,
|
documentId: document.id,
|
||||||
collectionId: collection.id,
|
collectionId: collection.id,
|
||||||
},
|
},
|
||||||
@@ -113,9 +105,8 @@ describe("#pins.create", () => {
|
|||||||
teamId: admin.teamId,
|
teamId: admin.teamId,
|
||||||
collectionId: collection.id,
|
collectionId: collection.id,
|
||||||
});
|
});
|
||||||
const res = await server.post("/api/pins.create", {
|
const res = await server.post("/api/pins.create", admin, {
|
||||||
body: {
|
body: {
|
||||||
token: admin.getJwtToken(),
|
|
||||||
// A draft document cannot be pinned, neither by a member nor by an admin
|
// A draft document cannot be pinned, neither by a member nor by an admin
|
||||||
documentId: draft.id,
|
documentId: draft.id,
|
||||||
collectionId: collection.id,
|
collectionId: collection.id,
|
||||||
@@ -127,9 +118,8 @@ describe("#pins.create", () => {
|
|||||||
});
|
});
|
||||||
|
|
||||||
it("should fail with status 403 forbidden when user is disallowed to pin the document to home page", async () => {
|
it("should fail with status 403 forbidden when user is disallowed to pin the document to home page", async () => {
|
||||||
const res = await server.post("/api/pins.create", {
|
const res = await server.post("/api/pins.create", user, {
|
||||||
body: {
|
body: {
|
||||||
token: user.getJwtToken(),
|
|
||||||
documentId: document.id,
|
documentId: document.id,
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
@@ -139,9 +129,8 @@ describe("#pins.create", () => {
|
|||||||
});
|
});
|
||||||
|
|
||||||
it("should succeed with status 200 ok when user is allowed to pin", async () => {
|
it("should succeed with status 200 ok when user is allowed to pin", async () => {
|
||||||
const res = await server.post("/api/pins.create", {
|
const res = await server.post("/api/pins.create", admin, {
|
||||||
body: {
|
body: {
|
||||||
token: admin.getJwtToken(),
|
|
||||||
documentId: document.id,
|
documentId: document.id,
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
@@ -153,9 +142,8 @@ describe("#pins.create", () => {
|
|||||||
});
|
});
|
||||||
|
|
||||||
it("should succeed with status 200 ok when valid collectionId is supplied", async () => {
|
it("should succeed with status 200 ok when valid collectionId is supplied", async () => {
|
||||||
const res = await server.post("/api/pins.create", {
|
const res = await server.post("/api/pins.create", admin, {
|
||||||
body: {
|
body: {
|
||||||
token: admin.getJwtToken(),
|
|
||||||
documentId: document.id,
|
documentId: document.id,
|
||||||
collectionId: collection.id,
|
collectionId: collection.id,
|
||||||
},
|
},
|
||||||
@@ -176,16 +164,14 @@ describe("#pins.info", () => {
|
|||||||
teamId: admin.teamId,
|
teamId: admin.teamId,
|
||||||
});
|
});
|
||||||
|
|
||||||
await server.post("/api/pins.create", {
|
await server.post("/api/pins.create", admin, {
|
||||||
body: {
|
body: {
|
||||||
token: admin.getJwtToken(),
|
|
||||||
documentId: document.id,
|
documentId: document.id,
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
|
|
||||||
const res = await server.post("/api/pins.info", {
|
const res = await server.post("/api/pins.info", admin, {
|
||||||
body: {
|
body: {
|
||||||
token: admin.getJwtToken(),
|
|
||||||
documentId: document.id,
|
documentId: document.id,
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
@@ -204,17 +190,15 @@ describe("#pins.info", () => {
|
|||||||
teamId: user.teamId,
|
teamId: user.teamId,
|
||||||
});
|
});
|
||||||
|
|
||||||
await server.post("/api/pins.create", {
|
await server.post("/api/pins.create", user, {
|
||||||
body: {
|
body: {
|
||||||
token: user.getJwtToken(),
|
|
||||||
documentId: document.id,
|
documentId: document.id,
|
||||||
collectionId: document.collectionId,
|
collectionId: document.collectionId,
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
|
|
||||||
const res = await server.post("/api/pins.info", {
|
const res = await server.post("/api/pins.info", user, {
|
||||||
body: {
|
body: {
|
||||||
token: user.getJwtToken(),
|
|
||||||
documentId: document.id,
|
documentId: document.id,
|
||||||
collectionId: document.collectionId,
|
collectionId: document.collectionId,
|
||||||
},
|
},
|
||||||
@@ -234,9 +218,8 @@ describe("#pins.info", () => {
|
|||||||
teamId: user.teamId,
|
teamId: user.teamId,
|
||||||
});
|
});
|
||||||
|
|
||||||
const res = await server.post("/api/pins.info", {
|
const res = await server.post("/api/pins.info", user, {
|
||||||
body: {
|
body: {
|
||||||
token: user.getJwtToken(),
|
|
||||||
documentId: document.id,
|
documentId: document.id,
|
||||||
collectionId: null,
|
collectionId: null,
|
||||||
},
|
},
|
||||||
@@ -292,11 +275,7 @@ describe("#pins.list", () => {
|
|||||||
});
|
});
|
||||||
|
|
||||||
it("should succeed with status 200 ok returning pinned documents", async () => {
|
it("should succeed with status 200 ok returning pinned documents", async () => {
|
||||||
const res = await server.post("/api/pins.list", {
|
const res = await server.post("/api/pins.list", user);
|
||||||
body: {
|
|
||||||
token: user.getJwtToken(),
|
|
||||||
},
|
|
||||||
});
|
|
||||||
const body = await res.json();
|
const body = await res.json();
|
||||||
expect(res.status).toEqual(200);
|
expect(res.status).toEqual(200);
|
||||||
expect(body.data).toBeTruthy();
|
expect(body.data).toBeTruthy();
|
||||||
@@ -311,9 +290,8 @@ describe("#pins.list", () => {
|
|||||||
});
|
});
|
||||||
|
|
||||||
it("should succeed with status 200 ok returning pinned documents filtered by collectionId supplied", async () => {
|
it("should succeed with status 200 ok returning pinned documents filtered by collectionId supplied", async () => {
|
||||||
const res = await server.post("/api/pins.list", {
|
const res = await server.post("/api/pins.list", user, {
|
||||||
body: {
|
body: {
|
||||||
token: user.getJwtToken(),
|
|
||||||
collectionId: collection.id,
|
collectionId: collection.id,
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
@@ -345,9 +323,8 @@ describe("#pins.list", () => {
|
|||||||
// Create a user on the same team but without access to the private collection
|
// Create a user on the same team but without access to the private collection
|
||||||
const teamMember = await buildUser({ teamId: otherUser.teamId });
|
const teamMember = await buildUser({ teamId: otherUser.teamId });
|
||||||
|
|
||||||
const res = await server.post("/api/pins.list", {
|
const res = await server.post("/api/pins.list", teamMember, {
|
||||||
body: {
|
body: {
|
||||||
token: teamMember.getJwtToken(),
|
|
||||||
collectionId: privateCollection.id,
|
collectionId: privateCollection.id,
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
@@ -372,9 +349,8 @@ describe("#pins.list", () => {
|
|||||||
teamId: user.teamId,
|
teamId: user.teamId,
|
||||||
});
|
});
|
||||||
|
|
||||||
const res = await server.post("/api/pins.list", {
|
const res = await server.post("/api/pins.list", user, {
|
||||||
body: {
|
body: {
|
||||||
token: user.getJwtToken(),
|
|
||||||
collectionId: collectionWithPins.id,
|
collectionId: collectionWithPins.id,
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
@@ -387,9 +363,8 @@ describe("#pins.list", () => {
|
|||||||
});
|
});
|
||||||
|
|
||||||
it("should fail with status 403 forbidden when collection does not exist", async () => {
|
it("should fail with status 403 forbidden when collection does not exist", async () => {
|
||||||
const res = await server.post("/api/pins.list", {
|
const res = await server.post("/api/pins.list", user, {
|
||||||
body: {
|
body: {
|
||||||
token: user.getJwtToken(),
|
|
||||||
collectionId: "00000000-0000-0000-0000-000000000000",
|
collectionId: "00000000-0000-0000-0000-000000000000",
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
@@ -437,11 +412,7 @@ describe("#pins.update", () => {
|
|||||||
});
|
});
|
||||||
|
|
||||||
it("should fail with status 400 bad request when id is missing", async () => {
|
it("should fail with status 400 bad request when id is missing", async () => {
|
||||||
const res = await server.post("/api/pins.update", {
|
const res = await server.post("/api/pins.update", admin);
|
||||||
body: {
|
|
||||||
token: admin.getJwtToken(),
|
|
||||||
},
|
|
||||||
});
|
|
||||||
const body = await res.json();
|
const body = await res.json();
|
||||||
expect(res.status).toEqual(400);
|
expect(res.status).toEqual(400);
|
||||||
expect(body.message).toEqual(
|
expect(body.message).toEqual(
|
||||||
@@ -450,9 +421,8 @@ describe("#pins.update", () => {
|
|||||||
});
|
});
|
||||||
|
|
||||||
it("should fail with status 400 bad request when index is missing", async () => {
|
it("should fail with status 400 bad request when index is missing", async () => {
|
||||||
const res = await server.post("/api/pins.update", {
|
const res = await server.post("/api/pins.update", admin, {
|
||||||
body: {
|
body: {
|
||||||
token: admin.getJwtToken(),
|
|
||||||
id: pin.id,
|
id: pin.id,
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
@@ -464,9 +434,8 @@ describe("#pins.update", () => {
|
|||||||
});
|
});
|
||||||
|
|
||||||
it("should fail with status 400 bad request when an invalid index is sent", async () => {
|
it("should fail with status 400 bad request when an invalid index is sent", async () => {
|
||||||
const res = await server.post("/api/pins.update", {
|
const res = await server.post("/api/pins.update", admin, {
|
||||||
body: {
|
body: {
|
||||||
token: admin.getJwtToken(),
|
|
||||||
id: pin.id,
|
id: pin.id,
|
||||||
index: "😀",
|
index: "😀",
|
||||||
},
|
},
|
||||||
@@ -477,9 +446,8 @@ describe("#pins.update", () => {
|
|||||||
});
|
});
|
||||||
|
|
||||||
it("should fail with status 403 forbidden when user is disallowed to update the pin", async () => {
|
it("should fail with status 403 forbidden when user is disallowed to update the pin", async () => {
|
||||||
const res = await server.post("/api/pins.update", {
|
const res = await server.post("/api/pins.update", user, {
|
||||||
body: {
|
body: {
|
||||||
token: user.getJwtToken(),
|
|
||||||
id: pin.id,
|
id: pin.id,
|
||||||
index: "b",
|
index: "b",
|
||||||
},
|
},
|
||||||
@@ -490,9 +458,8 @@ describe("#pins.update", () => {
|
|||||||
});
|
});
|
||||||
|
|
||||||
it("should succeed with status 200 ok and when user is allowed to update the pin", async () => {
|
it("should succeed with status 200 ok and when user is allowed to update the pin", async () => {
|
||||||
const res = await server.post("/api/pins.update", {
|
const res = await server.post("/api/pins.update", admin, {
|
||||||
body: {
|
body: {
|
||||||
token: admin.getJwtToken(),
|
|
||||||
id: pin.id,
|
id: pin.id,
|
||||||
index: "b",
|
index: "b",
|
||||||
},
|
},
|
||||||
@@ -527,11 +494,7 @@ describe("#pins.delete", () => {
|
|||||||
});
|
});
|
||||||
|
|
||||||
it("should fail with status 400 bad request when id is missing", async () => {
|
it("should fail with status 400 bad request when id is missing", async () => {
|
||||||
const res = await server.post("/api/pins.delete", {
|
const res = await server.post("/api/pins.delete", admin);
|
||||||
body: {
|
|
||||||
token: admin.getJwtToken(),
|
|
||||||
},
|
|
||||||
});
|
|
||||||
const body = await res.json();
|
const body = await res.json();
|
||||||
expect(res.status).toEqual(400);
|
expect(res.status).toEqual(400);
|
||||||
expect(body.message).toEqual(
|
expect(body.message).toEqual(
|
||||||
@@ -543,9 +506,8 @@ describe("#pins.delete", () => {
|
|||||||
const user = await buildUser({
|
const user = await buildUser({
|
||||||
teamId: admin.teamId,
|
teamId: admin.teamId,
|
||||||
});
|
});
|
||||||
const res = await server.post("/api/pins.delete", {
|
const res = await server.post("/api/pins.delete", user, {
|
||||||
body: {
|
body: {
|
||||||
token: user.getJwtToken(),
|
|
||||||
id: pin.id,
|
id: pin.id,
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
@@ -555,9 +517,8 @@ describe("#pins.delete", () => {
|
|||||||
});
|
});
|
||||||
|
|
||||||
it("should succeed with status 200 ok when user is allowed to delete the pin", async () => {
|
it("should succeed with status 200 ok when user is allowed to delete the pin", async () => {
|
||||||
const res = await server.post("/api/pins.delete", {
|
const res = await server.post("/api/pins.delete", admin, {
|
||||||
body: {
|
body: {
|
||||||
token: admin.getJwtToken(),
|
|
||||||
id: pin.id,
|
id: pin.id,
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
|
|||||||
@@ -33,9 +33,8 @@ describe("#reactions.list", () => {
|
|||||||
{ emoji: "😅", commentId: comment.id, userId: user.id },
|
{ emoji: "😅", commentId: comment.id, userId: user.id },
|
||||||
]);
|
]);
|
||||||
|
|
||||||
const res = await server.post("/api/reactions.list", {
|
const res = await server.post("/api/reactions.list", user, {
|
||||||
body: {
|
body: {
|
||||||
token: user.getJwtToken(),
|
|
||||||
commentId: comment.id,
|
commentId: comment.id,
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
|
|||||||
@@ -55,11 +55,7 @@ describe("#relationships.info", () => {
|
|||||||
});
|
});
|
||||||
|
|
||||||
it("should fail with status 400 bad request when id is not supplied", async () => {
|
it("should fail with status 400 bad request when id is not supplied", async () => {
|
||||||
const res = await server.post("/api/relationships.info", {
|
const res = await server.post("/api/relationships.info", user);
|
||||||
body: {
|
|
||||||
token: user.getJwtToken(),
|
|
||||||
},
|
|
||||||
});
|
|
||||||
const body = await res.json();
|
const body = await res.json();
|
||||||
expect(res.status).toEqual(400);
|
expect(res.status).toEqual(400);
|
||||||
expect(body.message).toEqual(
|
expect(body.message).toEqual(
|
||||||
@@ -68,9 +64,8 @@ describe("#relationships.info", () => {
|
|||||||
});
|
});
|
||||||
|
|
||||||
it("should fail with status 400 bad request when id is not a valid UUID", async () => {
|
it("should fail with status 400 bad request when id is not a valid UUID", async () => {
|
||||||
const res = await server.post("/api/relationships.info", {
|
const res = await server.post("/api/relationships.info", user, {
|
||||||
body: {
|
body: {
|
||||||
token: user.getJwtToken(),
|
|
||||||
id: "invalid-uuid",
|
id: "invalid-uuid",
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
@@ -80,9 +75,8 @@ describe("#relationships.info", () => {
|
|||||||
});
|
});
|
||||||
|
|
||||||
it("should fail with status 404 not found when relationship does not exist", async () => {
|
it("should fail with status 404 not found when relationship does not exist", async () => {
|
||||||
const res = await server.post("/api/relationships.info", {
|
const res = await server.post("/api/relationships.info", admin, {
|
||||||
body: {
|
body: {
|
||||||
token: admin.getJwtToken(),
|
|
||||||
id: "550e8400-e29b-41d4-a716-446655440000",
|
id: "550e8400-e29b-41d4-a716-446655440000",
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
@@ -92,9 +86,8 @@ describe("#relationships.info", () => {
|
|||||||
});
|
});
|
||||||
|
|
||||||
it("should fail with status 403 forbidden when user cannot read the document", async () => {
|
it("should fail with status 403 forbidden when user cannot read the document", async () => {
|
||||||
const res = await server.post("/api/relationships.info", {
|
const res = await server.post("/api/relationships.info", anotherUser, {
|
||||||
body: {
|
body: {
|
||||||
token: anotherUser.getJwtToken(),
|
|
||||||
id: relationship.id,
|
id: relationship.id,
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
@@ -104,9 +97,8 @@ describe("#relationships.info", () => {
|
|||||||
});
|
});
|
||||||
|
|
||||||
it("should succeed with status 200 ok when user can read the document", async () => {
|
it("should succeed with status 200 ok when user can read the document", async () => {
|
||||||
const res = await server.post("/api/relationships.info", {
|
const res = await server.post("/api/relationships.info", admin, {
|
||||||
body: {
|
body: {
|
||||||
token: admin.getJwtToken(),
|
|
||||||
id: relationship.id,
|
id: relationship.id,
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
@@ -143,9 +135,8 @@ describe("#relationships.info", () => {
|
|||||||
reverseDocumentId: adminDocument.id,
|
reverseDocumentId: adminDocument.id,
|
||||||
});
|
});
|
||||||
|
|
||||||
const res = await server.post("/api/relationships.info", {
|
const res = await server.post("/api/relationships.info", user, {
|
||||||
body: {
|
body: {
|
||||||
token: user.getJwtToken(),
|
|
||||||
id: userRelationship.id,
|
id: userRelationship.id,
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
@@ -165,9 +156,8 @@ describe("#relationships.info", () => {
|
|||||||
// Make user team member so they can read both documents
|
// Make user team member so they can read both documents
|
||||||
const teamUser = await buildUser({ teamId: admin.teamId });
|
const teamUser = await buildUser({ teamId: admin.teamId });
|
||||||
|
|
||||||
const res = await server.post("/api/relationships.info", {
|
const res = await server.post("/api/relationships.info", teamUser, {
|
||||||
body: {
|
body: {
|
||||||
token: teamUser.getJwtToken(),
|
|
||||||
id: relationship.id,
|
id: relationship.id,
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
@@ -243,11 +233,7 @@ describe("#relationships.list", () => {
|
|||||||
});
|
});
|
||||||
|
|
||||||
it("should succeed with status 200 ok returning all relationships", async () => {
|
it("should succeed with status 200 ok returning all relationships", async () => {
|
||||||
const res = await server.post("/api/relationships.list", {
|
const res = await server.post("/api/relationships.list", admin);
|
||||||
body: {
|
|
||||||
token: admin.getJwtToken(),
|
|
||||||
},
|
|
||||||
});
|
|
||||||
const body = await res.json();
|
const body = await res.json();
|
||||||
expect(res.status).toEqual(200);
|
expect(res.status).toEqual(200);
|
||||||
expect(body.data).toBeTruthy();
|
expect(body.data).toBeTruthy();
|
||||||
@@ -259,9 +245,8 @@ describe("#relationships.list", () => {
|
|||||||
});
|
});
|
||||||
|
|
||||||
it("should succeed with status 200 ok returning relationships filtered by type", async () => {
|
it("should succeed with status 200 ok returning relationships filtered by type", async () => {
|
||||||
const res = await server.post("/api/relationships.list", {
|
const res = await server.post("/api/relationships.list", admin, {
|
||||||
body: {
|
body: {
|
||||||
token: admin.getJwtToken(),
|
|
||||||
type: RelationshipType.Backlink,
|
type: RelationshipType.Backlink,
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
@@ -277,9 +262,8 @@ describe("#relationships.list", () => {
|
|||||||
});
|
});
|
||||||
|
|
||||||
it("should succeed with status 200 ok returning relationships filtered by documentId", async () => {
|
it("should succeed with status 200 ok returning relationships filtered by documentId", async () => {
|
||||||
const res = await server.post("/api/relationships.list", {
|
const res = await server.post("/api/relationships.list", admin, {
|
||||||
body: {
|
body: {
|
||||||
token: admin.getJwtToken(),
|
|
||||||
documentId: documents[0].id,
|
documentId: documents[0].id,
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
@@ -295,9 +279,8 @@ describe("#relationships.list", () => {
|
|||||||
});
|
});
|
||||||
|
|
||||||
it("should succeed with status 200 ok returning relationships filtered by reverseDocumentId", async () => {
|
it("should succeed with status 200 ok returning relationships filtered by reverseDocumentId", async () => {
|
||||||
const res = await server.post("/api/relationships.list", {
|
const res = await server.post("/api/relationships.list", admin, {
|
||||||
body: {
|
body: {
|
||||||
token: admin.getJwtToken(),
|
|
||||||
reverseDocumentId: documents[1].id,
|
reverseDocumentId: documents[1].id,
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
@@ -313,9 +296,8 @@ describe("#relationships.list", () => {
|
|||||||
});
|
});
|
||||||
|
|
||||||
it("should succeed with status 200 ok returning relationships with multiple filters", async () => {
|
it("should succeed with status 200 ok returning relationships with multiple filters", async () => {
|
||||||
const res = await server.post("/api/relationships.list", {
|
const res = await server.post("/api/relationships.list", admin, {
|
||||||
body: {
|
body: {
|
||||||
token: admin.getJwtToken(),
|
|
||||||
type: RelationshipType.Backlink,
|
type: RelationshipType.Backlink,
|
||||||
documentId: documents[0].id,
|
documentId: documents[0].id,
|
||||||
},
|
},
|
||||||
@@ -335,9 +317,8 @@ describe("#relationships.list", () => {
|
|||||||
});
|
});
|
||||||
|
|
||||||
it("should fail with status 400 bad request when documentId is invalid", async () => {
|
it("should fail with status 400 bad request when documentId is invalid", async () => {
|
||||||
const res = await server.post("/api/relationships.list", {
|
const res = await server.post("/api/relationships.list", admin, {
|
||||||
body: {
|
body: {
|
||||||
token: admin.getJwtToken(),
|
|
||||||
documentId: "invalid-id",
|
documentId: "invalid-id",
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
@@ -345,9 +326,8 @@ describe("#relationships.list", () => {
|
|||||||
});
|
});
|
||||||
|
|
||||||
it("should fail with status 400 bad request when reverseDocumentId is invalid", async () => {
|
it("should fail with status 400 bad request when reverseDocumentId is invalid", async () => {
|
||||||
const res = await server.post("/api/relationships.list", {
|
const res = await server.post("/api/relationships.list", admin, {
|
||||||
body: {
|
body: {
|
||||||
token: admin.getJwtToken(),
|
|
||||||
reverseDocumentId: "invalid-id",
|
reverseDocumentId: "invalid-id",
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
@@ -357,9 +337,8 @@ describe("#relationships.list", () => {
|
|||||||
});
|
});
|
||||||
|
|
||||||
it("should respect pagination", async () => {
|
it("should respect pagination", async () => {
|
||||||
const res = await server.post("/api/relationships.list", {
|
const res = await server.post("/api/relationships.list", admin, {
|
||||||
body: {
|
body: {
|
||||||
token: admin.getJwtToken(),
|
|
||||||
limit: 1,
|
limit: 1,
|
||||||
offset: 0,
|
offset: 0,
|
||||||
},
|
},
|
||||||
@@ -373,9 +352,8 @@ describe("#relationships.list", () => {
|
|||||||
});
|
});
|
||||||
|
|
||||||
it("should return empty results when no relationships match filters", async () => {
|
it("should return empty results when no relationships match filters", async () => {
|
||||||
const res = await server.post("/api/relationships.list", {
|
const res = await server.post("/api/relationships.list", admin, {
|
||||||
body: {
|
body: {
|
||||||
token: admin.getJwtToken(),
|
|
||||||
documentId: "550e8400-e29b-41d4-a716-446655440000",
|
documentId: "550e8400-e29b-41d4-a716-446655440000",
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
@@ -411,9 +389,8 @@ describe("#relationships.list", () => {
|
|||||||
reverseDocumentId: cannotAccessDocument.id,
|
reverseDocumentId: cannotAccessDocument.id,
|
||||||
});
|
});
|
||||||
|
|
||||||
const res = await server.post("/api/relationships.list", {
|
const res = await server.post("/api/relationships.list", user, {
|
||||||
body: {
|
body: {
|
||||||
token: user.getJwtToken(),
|
|
||||||
documentId: userDocument.id,
|
documentId: userDocument.id,
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
|
|||||||
@@ -21,9 +21,8 @@ describe("#revisions.info", () => {
|
|||||||
createContext({ user }),
|
createContext({ user }),
|
||||||
document
|
document
|
||||||
);
|
);
|
||||||
const res = await server.post("/api/revisions.info", {
|
const res = await server.post("/api/revisions.info", user, {
|
||||||
body: {
|
body: {
|
||||||
token: user.getJwtToken(),
|
|
||||||
id: revision.id,
|
id: revision.id,
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
@@ -44,9 +43,8 @@ describe("#revisions.info", () => {
|
|||||||
document
|
document
|
||||||
);
|
);
|
||||||
const user = await buildUser();
|
const user = await buildUser();
|
||||||
const res = await server.post("/api/revisions.info", {
|
const res = await server.post("/api/revisions.info", user, {
|
||||||
body: {
|
body: {
|
||||||
token: user.getJwtToken(),
|
|
||||||
id: revision.id,
|
id: revision.id,
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
@@ -66,9 +64,8 @@ describe("#revisions.update", () => {
|
|||||||
document
|
document
|
||||||
);
|
);
|
||||||
|
|
||||||
const res = await server.post("/api/revisions.update", {
|
const res = await server.post("/api/revisions.update", user, {
|
||||||
body: {
|
body: {
|
||||||
token: user.getJwtToken(),
|
|
||||||
id: revision.id,
|
id: revision.id,
|
||||||
name: "new name",
|
name: "new name",
|
||||||
},
|
},
|
||||||
@@ -89,9 +86,8 @@ describe("#revisions.update", () => {
|
|||||||
document
|
document
|
||||||
);
|
);
|
||||||
|
|
||||||
const res = await server.post("/api/revisions.update", {
|
const res = await server.post("/api/revisions.update", user, {
|
||||||
body: {
|
body: {
|
||||||
token: user.getJwtToken(),
|
|
||||||
id: revision.id,
|
id: revision.id,
|
||||||
name: null,
|
name: null,
|
||||||
},
|
},
|
||||||
@@ -112,9 +108,8 @@ describe("#revisions.update", () => {
|
|||||||
document
|
document
|
||||||
);
|
);
|
||||||
|
|
||||||
const res = await server.post("/api/revisions.update", {
|
const res = await server.post("/api/revisions.update", user, {
|
||||||
body: {
|
body: {
|
||||||
token: user.getJwtToken(),
|
|
||||||
id: revision.id,
|
id: revision.id,
|
||||||
name: "",
|
name: "",
|
||||||
},
|
},
|
||||||
@@ -133,9 +128,8 @@ describe("#revisions.update", () => {
|
|||||||
document
|
document
|
||||||
);
|
);
|
||||||
|
|
||||||
const res = await server.post("/api/revisions.update", {
|
const res = await server.post("/api/revisions.update", admin, {
|
||||||
body: {
|
body: {
|
||||||
token: admin.getJwtToken(),
|
|
||||||
id: revision.id,
|
id: revision.id,
|
||||||
name: "new name",
|
name: "new name",
|
||||||
},
|
},
|
||||||
@@ -156,9 +150,8 @@ describe("#revisions.update", () => {
|
|||||||
document
|
document
|
||||||
);
|
);
|
||||||
const user = await buildUser();
|
const user = await buildUser();
|
||||||
const res = await server.post("/api/revisions.update", {
|
const res = await server.post("/api/revisions.update", user, {
|
||||||
body: {
|
body: {
|
||||||
token: user.getJwtToken(),
|
|
||||||
id: revision.id,
|
id: revision.id,
|
||||||
name: "new name",
|
name: "new name",
|
||||||
},
|
},
|
||||||
@@ -175,9 +168,8 @@ describe("#revisions.list", () => {
|
|||||||
teamId: user.teamId,
|
teamId: user.teamId,
|
||||||
});
|
});
|
||||||
await Revision.createFromDocument(createContext({ user }), document);
|
await Revision.createFromDocument(createContext({ user }), document);
|
||||||
const res = await server.post("/api/revisions.list", {
|
const res = await server.post("/api/revisions.list", user, {
|
||||||
body: {
|
body: {
|
||||||
token: user.getJwtToken(),
|
|
||||||
documentId: document.id,
|
documentId: document.id,
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
@@ -208,9 +200,8 @@ describe("#revisions.list", () => {
|
|||||||
collectionId: collection.id,
|
collectionId: collection.id,
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
const res = await server.post("/api/revisions.list", {
|
const res = await server.post("/api/revisions.list", user, {
|
||||||
body: {
|
body: {
|
||||||
token: user.getJwtToken(),
|
|
||||||
documentId: document.id,
|
documentId: document.id,
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
@@ -220,9 +211,8 @@ describe("#revisions.list", () => {
|
|||||||
it("should require authorization", async () => {
|
it("should require authorization", async () => {
|
||||||
const document = await buildDocument();
|
const document = await buildDocument();
|
||||||
const user = await buildUser();
|
const user = await buildUser();
|
||||||
const res = await server.post("/api/revisions.list", {
|
const res = await server.post("/api/revisions.list", user, {
|
||||||
body: {
|
body: {
|
||||||
token: user.getJwtToken(),
|
|
||||||
documentId: document.id,
|
documentId: document.id,
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
@@ -241,9 +231,8 @@ describe("#revisions.export", () => {
|
|||||||
createContext({ user }),
|
createContext({ user }),
|
||||||
document
|
document
|
||||||
);
|
);
|
||||||
const res = await server.post("/api/revisions.export", {
|
const res = await server.post("/api/revisions.export", user, {
|
||||||
body: {
|
body: {
|
||||||
token: user.getJwtToken(),
|
|
||||||
id: revision.id,
|
id: revision.id,
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
@@ -262,9 +251,8 @@ describe("#revisions.export", () => {
|
|||||||
createContext({ user }),
|
createContext({ user }),
|
||||||
document
|
document
|
||||||
);
|
);
|
||||||
const res = await server.post("/api/revisions.export", {
|
const res = await server.post("/api/revisions.export", user, {
|
||||||
body: {
|
body: {
|
||||||
token: user.getJwtToken(),
|
|
||||||
id: revision.id,
|
id: revision.id,
|
||||||
},
|
},
|
||||||
headers: {
|
headers: {
|
||||||
@@ -286,9 +274,8 @@ describe("#revisions.export", () => {
|
|||||||
createContext({ user }),
|
createContext({ user }),
|
||||||
document
|
document
|
||||||
);
|
);
|
||||||
const res = await server.post("/api/revisions.export", {
|
const res = await server.post("/api/revisions.export", user, {
|
||||||
body: {
|
body: {
|
||||||
token: user.getJwtToken(),
|
|
||||||
id: revision.id,
|
id: revision.id,
|
||||||
},
|
},
|
||||||
headers: {
|
headers: {
|
||||||
@@ -330,9 +317,8 @@ describe("#revisions.export", () => {
|
|||||||
document
|
document
|
||||||
);
|
);
|
||||||
const user = await buildUser();
|
const user = await buildUser();
|
||||||
const res = await server.post("/api/revisions.export", {
|
const res = await server.post("/api/revisions.export", user, {
|
||||||
body: {
|
body: {
|
||||||
token: user.getJwtToken(),
|
|
||||||
id: revision.id,
|
id: revision.id,
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
|
|||||||
@@ -31,11 +31,7 @@ describe("#searches.list", () => {
|
|||||||
});
|
});
|
||||||
|
|
||||||
it("should succeed with status 200 ok returning results", async () => {
|
it("should succeed with status 200 ok returning results", async () => {
|
||||||
const res = await server.post("/api/searches.list", {
|
const res = await server.post("/api/searches.list", user);
|
||||||
body: {
|
|
||||||
token: user.getJwtToken(),
|
|
||||||
},
|
|
||||||
});
|
|
||||||
const body = await res.json();
|
const body = await res.json();
|
||||||
expect(res.status).toEqual(200);
|
expect(res.status).toEqual(200);
|
||||||
expect(body.data).toHaveLength(3);
|
expect(body.data).toHaveLength(3);
|
||||||
@@ -46,9 +42,8 @@ describe("#searches.list", () => {
|
|||||||
});
|
});
|
||||||
|
|
||||||
it("should allow filtering by source", async () => {
|
it("should allow filtering by source", async () => {
|
||||||
const res = await server.post("/api/searches.list", {
|
const res = await server.post("/api/searches.list", user, {
|
||||||
body: {
|
body: {
|
||||||
token: user.getJwtToken(),
|
|
||||||
source: "api",
|
source: "api",
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
@@ -72,9 +67,8 @@ describe("#searches.update", () => {
|
|||||||
});
|
});
|
||||||
|
|
||||||
it("should fail with status 400 bad request when an invalid id is provided", async () => {
|
it("should fail with status 400 bad request when an invalid id is provided", async () => {
|
||||||
const res = await server.post("/api/searches.update", {
|
const res = await server.post("/api/searches.update", user, {
|
||||||
body: {
|
body: {
|
||||||
token: user.getJwtToken(),
|
|
||||||
id: "id",
|
id: "id",
|
||||||
score: 1,
|
score: 1,
|
||||||
},
|
},
|
||||||
@@ -83,9 +77,8 @@ describe("#searches.update", () => {
|
|||||||
});
|
});
|
||||||
|
|
||||||
it("should fail with status 400 bad request when an invalid score is provided", async () => {
|
it("should fail with status 400 bad request when an invalid score is provided", async () => {
|
||||||
const res = await server.post("/api/searches.update", {
|
const res = await server.post("/api/searches.update", user, {
|
||||||
body: {
|
body: {
|
||||||
token: user.getJwtToken(),
|
|
||||||
id: searchQuery.id,
|
id: searchQuery.id,
|
||||||
score: 2,
|
score: 2,
|
||||||
},
|
},
|
||||||
@@ -94,9 +87,8 @@ describe("#searches.update", () => {
|
|||||||
});
|
});
|
||||||
|
|
||||||
it("should succeed with status 200 ok and successfully update the query", async () => {
|
it("should succeed with status 200 ok and successfully update the query", async () => {
|
||||||
const res = await server.post("/api/searches.update", {
|
const res = await server.post("/api/searches.update", user, {
|
||||||
body: {
|
body: {
|
||||||
token: user.getJwtToken(),
|
|
||||||
id: searchQuery.id,
|
id: searchQuery.id,
|
||||||
score: 1,
|
score: 1,
|
||||||
},
|
},
|
||||||
@@ -123,11 +115,7 @@ describe("#searches.delete", () => {
|
|||||||
});
|
});
|
||||||
|
|
||||||
it("should fail with status 400 bad request when no id or query is provided", async () => {
|
it("should fail with status 400 bad request when no id or query is provided", async () => {
|
||||||
const res = await server.post("/api/searches.delete", {
|
const res = await server.post("/api/searches.delete", user);
|
||||||
body: {
|
|
||||||
token: user.getJwtToken(),
|
|
||||||
},
|
|
||||||
});
|
|
||||||
|
|
||||||
const body = await res.json();
|
const body = await res.json();
|
||||||
expect(res.status).toEqual(400);
|
expect(res.status).toEqual(400);
|
||||||
@@ -135,9 +123,8 @@ describe("#searches.delete", () => {
|
|||||||
});
|
});
|
||||||
|
|
||||||
it("should fail with status 400 bad request when an invalid id is provided", async () => {
|
it("should fail with status 400 bad request when an invalid id is provided", async () => {
|
||||||
const res = await server.post("/api/searches.delete", {
|
const res = await server.post("/api/searches.delete", user, {
|
||||||
body: {
|
body: {
|
||||||
token: user.getJwtToken(),
|
|
||||||
id: "id",
|
id: "id",
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
@@ -156,9 +143,8 @@ describe("#searches.delete", () => {
|
|||||||
});
|
});
|
||||||
expect(searchQueries).toHaveLength(1);
|
expect(searchQueries).toHaveLength(1);
|
||||||
|
|
||||||
const res = await server.post("/api/searches.delete", {
|
const res = await server.post("/api/searches.delete", user, {
|
||||||
body: {
|
body: {
|
||||||
token: user.getJwtToken(),
|
|
||||||
id: searchQuery.id,
|
id: searchQuery.id,
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
|
|||||||
@@ -19,9 +19,8 @@ const server = getTestServer();
|
|||||||
describe("#shares.list", () => {
|
describe("#shares.list", () => {
|
||||||
it("should fail with status 400 bad request when an invalid sort value is suppled", async () => {
|
it("should fail with status 400 bad request when an invalid sort value is suppled", async () => {
|
||||||
const user = await buildUser();
|
const user = await buildUser();
|
||||||
const res = await server.post("/api/shares.list", {
|
const res = await server.post("/api/shares.list", user, {
|
||||||
body: {
|
body: {
|
||||||
token: user.getJwtToken(),
|
|
||||||
sort: "foo",
|
sort: "foo",
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
@@ -47,11 +46,7 @@ describe("#shares.list", () => {
|
|||||||
teamId: user.teamId,
|
teamId: user.teamId,
|
||||||
userId: user.id,
|
userId: user.id,
|
||||||
});
|
});
|
||||||
const res = await server.post("/api/shares.list", {
|
const res = await server.post("/api/shares.list", user);
|
||||||
body: {
|
|
||||||
token: user.getJwtToken(),
|
|
||||||
},
|
|
||||||
});
|
|
||||||
const body = await res.json();
|
const body = await res.json();
|
||||||
expect(res.status).toEqual(200);
|
expect(res.status).toEqual(200);
|
||||||
expect(body.data.length).toEqual(1);
|
expect(body.data.length).toEqual(1);
|
||||||
@@ -71,9 +66,8 @@ describe("#shares.list", () => {
|
|||||||
teamId: user.teamId,
|
teamId: user.teamId,
|
||||||
userId: user.id,
|
userId: user.id,
|
||||||
});
|
});
|
||||||
const res = await server.post("/api/shares.list", {
|
const res = await server.post("/api/shares.list", user, {
|
||||||
body: {
|
body: {
|
||||||
token: user.getJwtToken(),
|
|
||||||
query: "test",
|
query: "test",
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
@@ -98,9 +92,8 @@ describe("#shares.list", () => {
|
|||||||
teamId: user.teamId,
|
teamId: user.teamId,
|
||||||
userId: user.id,
|
userId: user.id,
|
||||||
});
|
});
|
||||||
const res = await server.post("/api/shares.list", {
|
const res = await server.post("/api/shares.list", user, {
|
||||||
body: {
|
body: {
|
||||||
token: user.getJwtToken(),
|
|
||||||
query: "test",
|
query: "test",
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
@@ -123,11 +116,7 @@ describe("#shares.list", () => {
|
|||||||
userId: user.id,
|
userId: user.id,
|
||||||
});
|
});
|
||||||
await share.revoke(createContext({ user }));
|
await share.revoke(createContext({ user }));
|
||||||
const res = await server.post("/api/shares.list", {
|
const res = await server.post("/api/shares.list", user);
|
||||||
body: {
|
|
||||||
token: user.getJwtToken(),
|
|
||||||
},
|
|
||||||
});
|
|
||||||
const body = await res.json();
|
const body = await res.json();
|
||||||
expect(res.status).toEqual(200);
|
expect(res.status).toEqual(200);
|
||||||
expect(body.data.length).toEqual(0);
|
expect(body.data.length).toEqual(0);
|
||||||
@@ -145,11 +134,7 @@ describe("#shares.list", () => {
|
|||||||
teamId: user.teamId,
|
teamId: user.teamId,
|
||||||
userId: user.id,
|
userId: user.id,
|
||||||
});
|
});
|
||||||
const res = await server.post("/api/shares.list", {
|
const res = await server.post("/api/shares.list", user);
|
||||||
body: {
|
|
||||||
token: user.getJwtToken(),
|
|
||||||
},
|
|
||||||
});
|
|
||||||
const body = await res.json();
|
const body = await res.json();
|
||||||
expect(res.status).toEqual(200);
|
expect(res.status).toEqual(200);
|
||||||
expect(body.data.length).toEqual(0);
|
expect(body.data.length).toEqual(0);
|
||||||
@@ -167,11 +152,7 @@ describe("#shares.list", () => {
|
|||||||
userId: user.id,
|
userId: user.id,
|
||||||
});
|
});
|
||||||
await withAPIContext(user, (ctx) => document.destroyWithCtx(ctx));
|
await withAPIContext(user, (ctx) => document.destroyWithCtx(ctx));
|
||||||
const res = await server.post("/api/shares.list", {
|
const res = await server.post("/api/shares.list", user);
|
||||||
body: {
|
|
||||||
token: user.getJwtToken(),
|
|
||||||
},
|
|
||||||
});
|
|
||||||
const body = await res.json();
|
const body = await res.json();
|
||||||
expect(res.status).toEqual(200);
|
expect(res.status).toEqual(200);
|
||||||
expect(body.data.length).toEqual(0);
|
expect(body.data.length).toEqual(0);
|
||||||
@@ -187,11 +168,7 @@ describe("#shares.list", () => {
|
|||||||
teamId: admin.teamId,
|
teamId: admin.teamId,
|
||||||
userId: user.id,
|
userId: user.id,
|
||||||
});
|
});
|
||||||
const res = await server.post("/api/shares.list", {
|
const res = await server.post("/api/shares.list", admin);
|
||||||
body: {
|
|
||||||
token: admin.getJwtToken(),
|
|
||||||
},
|
|
||||||
});
|
|
||||||
const body = await res.json();
|
const body = await res.json();
|
||||||
expect(res.status).toEqual(200);
|
expect(res.status).toEqual(200);
|
||||||
expect(body.data.length).toEqual(1);
|
expect(body.data.length).toEqual(1);
|
||||||
@@ -219,11 +196,7 @@ describe("#shares.list", () => {
|
|||||||
});
|
});
|
||||||
collection.permission = null;
|
collection.permission = null;
|
||||||
await collection.save();
|
await collection.save();
|
||||||
const res = await server.post("/api/shares.list", {
|
const res = await server.post("/api/shares.list", admin);
|
||||||
body: {
|
|
||||||
token: admin.getJwtToken(),
|
|
||||||
},
|
|
||||||
});
|
|
||||||
const body = await res.json();
|
const body = await res.json();
|
||||||
expect(res.status).toEqual(200);
|
expect(res.status).toEqual(200);
|
||||||
expect(body.data.length).toEqual(0);
|
expect(body.data.length).toEqual(0);
|
||||||
@@ -240,11 +213,7 @@ describe("#shares.list", () => {
|
|||||||
describe("#shares.create", () => {
|
describe("#shares.create", () => {
|
||||||
it("should fail with status 400 bad request when both documentId and collectionId are missing", async () => {
|
it("should fail with status 400 bad request when both documentId and collectionId are missing", async () => {
|
||||||
const user = await buildUser();
|
const user = await buildUser();
|
||||||
const res = await server.post("/api/shares.create", {
|
const res = await server.post("/api/shares.create", user);
|
||||||
body: {
|
|
||||||
token: user.getJwtToken(),
|
|
||||||
},
|
|
||||||
});
|
|
||||||
const body = await res.json();
|
const body = await res.json();
|
||||||
expect(res.status).toEqual(400);
|
expect(res.status).toEqual(400);
|
||||||
expect(body.message).toEqual(
|
expect(body.message).toEqual(
|
||||||
@@ -254,9 +223,8 @@ describe("#shares.create", () => {
|
|||||||
|
|
||||||
it("should fail with status 400 bad request when documentId is invalid", async () => {
|
it("should fail with status 400 bad request when documentId is invalid", async () => {
|
||||||
const user = await buildUser();
|
const user = await buildUser();
|
||||||
const res = await server.post("/api/shares.create", {
|
const res = await server.post("/api/shares.create", user, {
|
||||||
body: {
|
body: {
|
||||||
token: user.getJwtToken(),
|
|
||||||
documentId: "foo",
|
documentId: "foo",
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
@@ -271,9 +239,8 @@ describe("#shares.create", () => {
|
|||||||
userId: user.id,
|
userId: user.id,
|
||||||
teamId: user.teamId,
|
teamId: user.teamId,
|
||||||
});
|
});
|
||||||
const res = await server.post("/api/shares.create", {
|
const res = await server.post("/api/shares.create", user, {
|
||||||
body: {
|
body: {
|
||||||
token: user.getJwtToken(),
|
|
||||||
collectionId: collection.id,
|
collectionId: collection.id,
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
@@ -289,9 +256,8 @@ describe("#shares.create", () => {
|
|||||||
userId: user.id,
|
userId: user.id,
|
||||||
teamId: user.teamId,
|
teamId: user.teamId,
|
||||||
});
|
});
|
||||||
const res = await server.post("/api/shares.create", {
|
const res = await server.post("/api/shares.create", user, {
|
||||||
body: {
|
body: {
|
||||||
token: user.getJwtToken(),
|
|
||||||
documentId: document.id,
|
documentId: document.id,
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
@@ -307,9 +273,8 @@ describe("#shares.create", () => {
|
|||||||
userId: user.id,
|
userId: user.id,
|
||||||
teamId: user.teamId,
|
teamId: user.teamId,
|
||||||
});
|
});
|
||||||
const res = await server.post("/api/shares.create", {
|
const res = await server.post("/api/shares.create", user, {
|
||||||
body: {
|
body: {
|
||||||
token: user.getJwtToken(),
|
|
||||||
documentId: document.id,
|
documentId: document.id,
|
||||||
includeChildDocuments: true,
|
includeChildDocuments: true,
|
||||||
published: true,
|
published: true,
|
||||||
@@ -330,9 +295,8 @@ describe("#shares.create", () => {
|
|||||||
userId: user.id,
|
userId: user.id,
|
||||||
teamId: user.teamId,
|
teamId: user.teamId,
|
||||||
});
|
});
|
||||||
const res = await server.post("/api/shares.create", {
|
const res = await server.post("/api/shares.create", user, {
|
||||||
body: {
|
body: {
|
||||||
token: user.getJwtToken(),
|
|
||||||
documentId: document.id,
|
documentId: document.id,
|
||||||
published: true,
|
published: true,
|
||||||
},
|
},
|
||||||
@@ -349,9 +313,8 @@ describe("#shares.create", () => {
|
|||||||
userId: user.id,
|
userId: user.id,
|
||||||
teamId: user.teamId,
|
teamId: user.teamId,
|
||||||
});
|
});
|
||||||
const res = await server.post("/api/shares.create", {
|
const res = await server.post("/api/shares.create", user, {
|
||||||
body: {
|
body: {
|
||||||
token: user.getJwtToken(),
|
|
||||||
documentId: document.id,
|
documentId: document.id,
|
||||||
published: true,
|
published: true,
|
||||||
allowIndexing: false,
|
allowIndexing: false,
|
||||||
@@ -392,9 +355,8 @@ describe("#shares.create", () => {
|
|||||||
},
|
},
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
const res = await server.post("/api/shares.create", {
|
const res = await server.post("/api/shares.create", user, {
|
||||||
body: {
|
body: {
|
||||||
token: user.getJwtToken(),
|
|
||||||
documentId: document.id,
|
documentId: document.id,
|
||||||
published: true,
|
published: true,
|
||||||
},
|
},
|
||||||
@@ -428,17 +390,15 @@ describe("#shares.create", () => {
|
|||||||
},
|
},
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
const res = await server.post("/api/shares.create", {
|
const res = await server.post("/api/shares.create", user, {
|
||||||
body: {
|
body: {
|
||||||
token: user.getJwtToken(),
|
|
||||||
documentId: document.id,
|
documentId: document.id,
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
const body = await res.json();
|
const body = await res.json();
|
||||||
expect(res.status).toEqual(200);
|
expect(res.status).toEqual(200);
|
||||||
const response = await server.post("/api/shares.update", {
|
const response = await server.post("/api/shares.update", user, {
|
||||||
body: {
|
body: {
|
||||||
token: user.getJwtToken(),
|
|
||||||
id: body.data.id,
|
id: body.data.id,
|
||||||
published: true,
|
published: true,
|
||||||
},
|
},
|
||||||
@@ -458,9 +418,8 @@ describe("#shares.create", () => {
|
|||||||
userId: user.id,
|
userId: user.id,
|
||||||
});
|
});
|
||||||
await share.revoke(createContext({ user }));
|
await share.revoke(createContext({ user }));
|
||||||
const res = await server.post("/api/shares.create", {
|
const res = await server.post("/api/shares.create", user, {
|
||||||
body: {
|
body: {
|
||||||
token: user.getJwtToken(),
|
|
||||||
documentId: document.id,
|
documentId: document.id,
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
@@ -481,9 +440,8 @@ describe("#shares.create", () => {
|
|||||||
teamId: user.teamId,
|
teamId: user.teamId,
|
||||||
userId: user.id,
|
userId: user.id,
|
||||||
});
|
});
|
||||||
const res = await server.post("/api/shares.create", {
|
const res = await server.post("/api/shares.create", user, {
|
||||||
body: {
|
body: {
|
||||||
token: user.getJwtToken(),
|
|
||||||
documentId: document.id,
|
documentId: document.id,
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
@@ -499,17 +457,15 @@ describe("#shares.create", () => {
|
|||||||
teamId: user.teamId,
|
teamId: user.teamId,
|
||||||
userId: user.id,
|
userId: user.id,
|
||||||
});
|
});
|
||||||
const res = await server.post("/api/shares.create", {
|
const res = await server.post("/api/shares.create", user, {
|
||||||
body: {
|
body: {
|
||||||
token: user.getJwtToken(),
|
|
||||||
documentId: document.id,
|
documentId: document.id,
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
const body = await res.json();
|
const body = await res.json();
|
||||||
expect(res.status).toEqual(200);
|
expect(res.status).toEqual(200);
|
||||||
const response = await server.post("/api/shares.update", {
|
const response = await server.post("/api/shares.update", user, {
|
||||||
body: {
|
body: {
|
||||||
token: user.getJwtToken(),
|
|
||||||
id: body.data.id,
|
id: body.data.id,
|
||||||
published: true,
|
published: true,
|
||||||
},
|
},
|
||||||
@@ -529,17 +485,15 @@ describe("#shares.create", () => {
|
|||||||
collectionId: collection.id,
|
collectionId: collection.id,
|
||||||
teamId: user.teamId,
|
teamId: user.teamId,
|
||||||
});
|
});
|
||||||
const res = await server.post("/api/shares.create", {
|
const res = await server.post("/api/shares.create", user, {
|
||||||
body: {
|
body: {
|
||||||
token: user.getJwtToken(),
|
|
||||||
documentId: document.id,
|
documentId: document.id,
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
const body = await res.json();
|
const body = await res.json();
|
||||||
expect(res.status).toEqual(200);
|
expect(res.status).toEqual(200);
|
||||||
const response = await server.post("/api/shares.update", {
|
const response = await server.post("/api/shares.update", user, {
|
||||||
body: {
|
body: {
|
||||||
token: user.getJwtToken(),
|
|
||||||
id: body.data.id,
|
id: body.data.id,
|
||||||
published: true,
|
published: true,
|
||||||
},
|
},
|
||||||
@@ -562,9 +516,8 @@ describe("#shares.create", () => {
|
|||||||
it("should require authorization", async () => {
|
it("should require authorization", async () => {
|
||||||
const document = await buildDocument();
|
const document = await buildDocument();
|
||||||
const user = await buildUser();
|
const user = await buildUser();
|
||||||
const res = await server.post("/api/shares.create", {
|
const res = await server.post("/api/shares.create", user, {
|
||||||
body: {
|
body: {
|
||||||
token: user.getJwtToken(),
|
|
||||||
documentId: document.id,
|
documentId: document.id,
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
@@ -575,9 +528,8 @@ describe("#shares.create", () => {
|
|||||||
const user = await buildUser();
|
const user = await buildUser();
|
||||||
const otherDocument = await buildDocument();
|
const otherDocument = await buildDocument();
|
||||||
|
|
||||||
const res = await server.post("/api/shares.create", {
|
const res = await server.post("/api/shares.create", user, {
|
||||||
body: {
|
body: {
|
||||||
token: user.getJwtToken(),
|
|
||||||
documentId: otherDocument.id,
|
documentId: otherDocument.id,
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
@@ -588,9 +540,8 @@ describe("#shares.create", () => {
|
|||||||
const user = await buildUser();
|
const user = await buildUser();
|
||||||
const otherDocument = await buildDocument();
|
const otherDocument = await buildDocument();
|
||||||
|
|
||||||
const res = await server.post("/api/shares.create", {
|
const res = await server.post("/api/shares.create", user, {
|
||||||
body: {
|
body: {
|
||||||
token: user.getJwtToken(),
|
|
||||||
documentId: otherDocument.id,
|
documentId: otherDocument.id,
|
||||||
published: true,
|
published: true,
|
||||||
},
|
},
|
||||||
@@ -602,9 +553,8 @@ describe("#shares.create", () => {
|
|||||||
const user = await buildUser();
|
const user = await buildUser();
|
||||||
const otherCollection = await buildCollection();
|
const otherCollection = await buildCollection();
|
||||||
|
|
||||||
const res = await server.post("/api/shares.create", {
|
const res = await server.post("/api/shares.create", user, {
|
||||||
body: {
|
body: {
|
||||||
token: user.getJwtToken(),
|
|
||||||
collectionId: otherCollection.id,
|
collectionId: otherCollection.id,
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
@@ -622,9 +572,8 @@ describe("#shares.create", () => {
|
|||||||
teamId: user.teamId,
|
teamId: user.teamId,
|
||||||
});
|
});
|
||||||
|
|
||||||
const res = await server.post("/api/shares.create", {
|
const res = await server.post("/api/shares.create", user, {
|
||||||
body: {
|
body: {
|
||||||
token: user.getJwtToken(),
|
|
||||||
collectionId: collection.id,
|
collectionId: collection.id,
|
||||||
documentId: document.id,
|
documentId: document.id,
|
||||||
},
|
},
|
||||||
@@ -643,9 +592,8 @@ describe("#shares.create", () => {
|
|||||||
teamId: user.teamId,
|
teamId: user.teamId,
|
||||||
});
|
});
|
||||||
|
|
||||||
const res = await server.post("/api/shares.create", {
|
const res = await server.post("/api/shares.create", user, {
|
||||||
body: {
|
body: {
|
||||||
token: user.getJwtToken(),
|
|
||||||
collectionId: collection.id,
|
collectionId: collection.id,
|
||||||
documentId: document.id,
|
documentId: document.id,
|
||||||
published: true,
|
published: true,
|
||||||
@@ -658,11 +606,7 @@ describe("#shares.create", () => {
|
|||||||
describe("#shares.info", () => {
|
describe("#shares.info", () => {
|
||||||
it("should fail with status 400 bad request when id, collectionId and documentId are missing", async () => {
|
it("should fail with status 400 bad request when id, collectionId and documentId are missing", async () => {
|
||||||
const user = await buildUser();
|
const user = await buildUser();
|
||||||
const res = await server.post("/api/shares.info", {
|
const res = await server.post("/api/shares.info", user);
|
||||||
body: {
|
|
||||||
token: user.getJwtToken(),
|
|
||||||
},
|
|
||||||
});
|
|
||||||
const body = await res.json();
|
const body = await res.json();
|
||||||
expect(res.status).toEqual(400);
|
expect(res.status).toEqual(400);
|
||||||
expect(body.message).toEqual(
|
expect(body.message).toEqual(
|
||||||
@@ -672,9 +616,8 @@ describe("#shares.info", () => {
|
|||||||
|
|
||||||
it("should fail with status 400 bad request when documentId is invalid", async () => {
|
it("should fail with status 400 bad request when documentId is invalid", async () => {
|
||||||
const user = await buildUser();
|
const user = await buildUser();
|
||||||
const res = await server.post("/api/shares.info", {
|
const res = await server.post("/api/shares.info", user, {
|
||||||
body: {
|
body: {
|
||||||
token: user.getJwtToken(),
|
|
||||||
documentId: "foo",
|
documentId: "foo",
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
@@ -702,9 +645,8 @@ describe("#shares.info", () => {
|
|||||||
teamId: admin.teamId,
|
teamId: admin.teamId,
|
||||||
userId: admin.id,
|
userId: admin.id,
|
||||||
});
|
});
|
||||||
const res = await server.post("/api/shares.info", {
|
const res = await server.post("/api/shares.info", user, {
|
||||||
body: {
|
body: {
|
||||||
token: user.getJwtToken(),
|
|
||||||
documentId: document.id,
|
documentId: document.id,
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
@@ -722,9 +664,8 @@ describe("#shares.info", () => {
|
|||||||
teamId: user.teamId,
|
teamId: user.teamId,
|
||||||
userId: user.id,
|
userId: user.id,
|
||||||
});
|
});
|
||||||
const res = await server.post("/api/shares.info", {
|
const res = await server.post("/api/shares.info", user, {
|
||||||
body: {
|
body: {
|
||||||
token: user.getJwtToken(),
|
|
||||||
id: share.id,
|
id: share.id,
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
@@ -747,9 +688,8 @@ describe("#shares.info", () => {
|
|||||||
teamId: user.teamId,
|
teamId: user.teamId,
|
||||||
userId: user.id,
|
userId: user.id,
|
||||||
});
|
});
|
||||||
const res = await server.post("/api/shares.info", {
|
const res = await server.post("/api/shares.info", user, {
|
||||||
body: {
|
body: {
|
||||||
token: user.getJwtToken(),
|
|
||||||
documentId: document.id,
|
documentId: document.id,
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
@@ -765,9 +705,8 @@ describe("#shares.info", () => {
|
|||||||
userId: user.id,
|
userId: user.id,
|
||||||
teamId: user.teamId,
|
teamId: user.teamId,
|
||||||
});
|
});
|
||||||
const res = await server.post("/api/shares.info", {
|
const res = await server.post("/api/shares.info", user, {
|
||||||
body: {
|
body: {
|
||||||
token: user.getJwtToken(),
|
|
||||||
documentId: document.id,
|
documentId: document.id,
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
@@ -803,9 +742,8 @@ describe("#shares.info", () => {
|
|||||||
});
|
});
|
||||||
await collection.reload();
|
await collection.reload();
|
||||||
await collection.addDocumentToStructure(childDocument, 0);
|
await collection.addDocumentToStructure(childDocument, 0);
|
||||||
const res = await server.post("/api/shares.info", {
|
const res = await server.post("/api/shares.info", user, {
|
||||||
body: {
|
body: {
|
||||||
token: user.getJwtToken(),
|
|
||||||
documentId: childDocument.id,
|
documentId: childDocument.id,
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
@@ -852,9 +790,8 @@ describe("#shares.info", () => {
|
|||||||
userId: user.id,
|
userId: user.id,
|
||||||
});
|
});
|
||||||
await collection.addDocumentToStructure(childDocument, 0);
|
await collection.addDocumentToStructure(childDocument, 0);
|
||||||
const res = await server.post("/api/shares.info", {
|
const res = await server.post("/api/shares.info", user, {
|
||||||
body: {
|
body: {
|
||||||
token: user.getJwtToken(),
|
|
||||||
documentId: childDocument.id,
|
documentId: childDocument.id,
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
@@ -897,9 +834,8 @@ describe("#shares.info", () => {
|
|||||||
});
|
});
|
||||||
await collection.reload();
|
await collection.reload();
|
||||||
await collection.addDocumentToStructure(childDocument, 0);
|
await collection.addDocumentToStructure(childDocument, 0);
|
||||||
const res = await server.post("/api/shares.info", {
|
const res = await server.post("/api/shares.info", user, {
|
||||||
body: {
|
body: {
|
||||||
token: user.getJwtToken(),
|
|
||||||
documentId: childDocument.id,
|
documentId: childDocument.id,
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
@@ -928,9 +864,8 @@ describe("#shares.update", () => {
|
|||||||
documentId: document.id,
|
documentId: document.id,
|
||||||
teamId: user.teamId,
|
teamId: user.teamId,
|
||||||
});
|
});
|
||||||
const res = await server.post("/api/shares.update", {
|
const res = await server.post("/api/shares.update", user, {
|
||||||
body: {
|
body: {
|
||||||
token: user.getJwtToken(),
|
|
||||||
id: share.id,
|
id: share.id,
|
||||||
urlId: "url_id",
|
urlId: "url_id",
|
||||||
},
|
},
|
||||||
@@ -944,9 +879,8 @@ describe("#shares.update", () => {
|
|||||||
|
|
||||||
it("should fail with status 400 bad request when id is missing", async () => {
|
it("should fail with status 400 bad request when id is missing", async () => {
|
||||||
const user = await buildUser();
|
const user = await buildUser();
|
||||||
const res = await server.post("/api/shares.update", {
|
const res = await server.post("/api/shares.update", user, {
|
||||||
body: {
|
body: {
|
||||||
token: user.getJwtToken(),
|
|
||||||
urlId: "url-id",
|
urlId: "url-id",
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
@@ -967,9 +901,8 @@ describe("#shares.update", () => {
|
|||||||
documentId: document.id,
|
documentId: document.id,
|
||||||
teamId: user.teamId,
|
teamId: user.teamId,
|
||||||
});
|
});
|
||||||
const res = await server.post("/api/shares.update", {
|
const res = await server.post("/api/shares.update", user, {
|
||||||
body: {
|
body: {
|
||||||
token: user.getJwtToken(),
|
|
||||||
id: share.id,
|
id: share.id,
|
||||||
urlId: "url-id",
|
urlId: "url-id",
|
||||||
},
|
},
|
||||||
@@ -989,17 +922,15 @@ describe("#shares.update", () => {
|
|||||||
documentId: document.id,
|
documentId: document.id,
|
||||||
teamId: user.teamId,
|
teamId: user.teamId,
|
||||||
});
|
});
|
||||||
await server.post("/api/shares.update", {
|
await server.post("/api/shares.update", user, {
|
||||||
body: {
|
body: {
|
||||||
token: user.getJwtToken(),
|
|
||||||
id: share.id,
|
id: share.id,
|
||||||
urlId: "url-id",
|
urlId: "url-id",
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
|
|
||||||
const res = await server.post("/api/shares.update", {
|
const res = await server.post("/api/shares.update", user, {
|
||||||
body: {
|
body: {
|
||||||
token: user.getJwtToken(),
|
|
||||||
id: share.id,
|
id: share.id,
|
||||||
urlId: null,
|
urlId: null,
|
||||||
},
|
},
|
||||||
@@ -1019,9 +950,8 @@ describe("#shares.update", () => {
|
|||||||
documentId: document.id,
|
documentId: document.id,
|
||||||
teamId: user.teamId,
|
teamId: user.teamId,
|
||||||
});
|
});
|
||||||
const res = await server.post("/api/shares.update", {
|
const res = await server.post("/api/shares.update", user, {
|
||||||
body: {
|
body: {
|
||||||
token: user.getJwtToken(),
|
|
||||||
id: share.id,
|
id: share.id,
|
||||||
title: "Custom Title",
|
title: "Custom Title",
|
||||||
iconUrl: "https://example.com/icon.png",
|
iconUrl: "https://example.com/icon.png",
|
||||||
@@ -1045,9 +975,8 @@ describe("#shares.update", () => {
|
|||||||
title: "Custom Title",
|
title: "Custom Title",
|
||||||
iconUrl: "https://example.com/icon.png",
|
iconUrl: "https://example.com/icon.png",
|
||||||
});
|
});
|
||||||
const res = await server.post("/api/shares.update", {
|
const res = await server.post("/api/shares.update", user, {
|
||||||
body: {
|
body: {
|
||||||
token: user.getJwtToken(),
|
|
||||||
id: share.id,
|
id: share.id,
|
||||||
title: null,
|
title: null,
|
||||||
iconUrl: null,
|
iconUrl: null,
|
||||||
@@ -1070,9 +999,8 @@ describe("#shares.update", () => {
|
|||||||
teamId: user.teamId,
|
teamId: user.teamId,
|
||||||
title: "Custom Title",
|
title: "Custom Title",
|
||||||
});
|
});
|
||||||
const res = await server.post("/api/shares.update", {
|
const res = await server.post("/api/shares.update", user, {
|
||||||
body: {
|
body: {
|
||||||
token: user.getJwtToken(),
|
|
||||||
id: share.id,
|
id: share.id,
|
||||||
title: "",
|
title: "",
|
||||||
},
|
},
|
||||||
@@ -1092,9 +1020,8 @@ describe("#shares.update", () => {
|
|||||||
documentId: document.id,
|
documentId: document.id,
|
||||||
teamId: user.teamId,
|
teamId: user.teamId,
|
||||||
});
|
});
|
||||||
const res = await server.post("/api/shares.update", {
|
const res = await server.post("/api/shares.update", user, {
|
||||||
body: {
|
body: {
|
||||||
token: user.getJwtToken(),
|
|
||||||
id: share.id,
|
id: share.id,
|
||||||
iconUrl: "/uploads/icon.png",
|
iconUrl: "/uploads/icon.png",
|
||||||
},
|
},
|
||||||
@@ -1114,9 +1041,8 @@ describe("#shares.update", () => {
|
|||||||
documentId: document.id,
|
documentId: document.id,
|
||||||
teamId: user.teamId,
|
teamId: user.teamId,
|
||||||
});
|
});
|
||||||
const res = await server.post("/api/shares.update", {
|
const res = await server.post("/api/shares.update", user, {
|
||||||
body: {
|
body: {
|
||||||
token: user.getJwtToken(),
|
|
||||||
id: share.id,
|
id: share.id,
|
||||||
iconUrl: "not a url",
|
iconUrl: "not a url",
|
||||||
},
|
},
|
||||||
@@ -1134,9 +1060,8 @@ describe("#shares.update", () => {
|
|||||||
documentId: document.id,
|
documentId: document.id,
|
||||||
teamId: user.teamId,
|
teamId: user.teamId,
|
||||||
});
|
});
|
||||||
const res = await server.post("/api/shares.update", {
|
const res = await server.post("/api/shares.update", user, {
|
||||||
body: {
|
body: {
|
||||||
token: user.getJwtToken(),
|
|
||||||
id: share.id,
|
id: share.id,
|
||||||
iconUrl: "javascript:alert(1)",
|
iconUrl: "javascript:alert(1)",
|
||||||
},
|
},
|
||||||
@@ -1154,9 +1079,8 @@ describe("#shares.update", () => {
|
|||||||
documentId: document.id,
|
documentId: document.id,
|
||||||
teamId: user.teamId,
|
teamId: user.teamId,
|
||||||
});
|
});
|
||||||
const res = await server.post("/api/shares.update", {
|
const res = await server.post("/api/shares.update", user, {
|
||||||
body: {
|
body: {
|
||||||
token: user.getJwtToken(),
|
|
||||||
id: share.id,
|
id: share.id,
|
||||||
published: true,
|
published: true,
|
||||||
},
|
},
|
||||||
@@ -1178,9 +1102,8 @@ describe("#shares.update", () => {
|
|||||||
teamId: user.teamId,
|
teamId: user.teamId,
|
||||||
userId: user.id,
|
userId: user.id,
|
||||||
});
|
});
|
||||||
const res = await server.post("/api/shares.update", {
|
const res = await server.post("/api/shares.update", user, {
|
||||||
body: {
|
body: {
|
||||||
token: user.getJwtToken(),
|
|
||||||
id: share.id,
|
id: share.id,
|
||||||
published: true,
|
published: true,
|
||||||
},
|
},
|
||||||
@@ -1201,9 +1124,8 @@ describe("#shares.update", () => {
|
|||||||
teamId: user.teamId,
|
teamId: user.teamId,
|
||||||
userId: user.id,
|
userId: user.id,
|
||||||
});
|
});
|
||||||
const res = await server.post("/api/shares.update", {
|
const res = await server.post("/api/shares.update", admin, {
|
||||||
body: {
|
body: {
|
||||||
token: admin.getJwtToken(),
|
|
||||||
id: share.id,
|
id: share.id,
|
||||||
published: true,
|
published: true,
|
||||||
},
|
},
|
||||||
@@ -1246,9 +1168,8 @@ describe("#shares.update", () => {
|
|||||||
teamId: admin.teamId,
|
teamId: admin.teamId,
|
||||||
userId: admin.id,
|
userId: admin.id,
|
||||||
});
|
});
|
||||||
const res = await server.post("/api/shares.update", {
|
const res = await server.post("/api/shares.update", user, {
|
||||||
body: {
|
body: {
|
||||||
token: user.getJwtToken(),
|
|
||||||
id: share.id,
|
id: share.id,
|
||||||
published: true,
|
published: true,
|
||||||
},
|
},
|
||||||
@@ -1260,11 +1181,7 @@ describe("#shares.update", () => {
|
|||||||
describe("#shares.revoke", () => {
|
describe("#shares.revoke", () => {
|
||||||
it("should fail with status 400 bad request when id is missing", async () => {
|
it("should fail with status 400 bad request when id is missing", async () => {
|
||||||
const user = await buildUser();
|
const user = await buildUser();
|
||||||
const res = await server.post("/api/shares.revoke", {
|
const res = await server.post("/api/shares.revoke", user);
|
||||||
body: {
|
|
||||||
token: user.getJwtToken(),
|
|
||||||
},
|
|
||||||
});
|
|
||||||
const body = await res.json();
|
const body = await res.json();
|
||||||
expect(res.status).toEqual(400);
|
expect(res.status).toEqual(400);
|
||||||
expect(body.message).toEqual(
|
expect(body.message).toEqual(
|
||||||
@@ -1283,9 +1200,8 @@ describe("#shares.revoke", () => {
|
|||||||
teamId: user.teamId,
|
teamId: user.teamId,
|
||||||
userId: user.id,
|
userId: user.id,
|
||||||
});
|
});
|
||||||
const res = await server.post("/api/shares.revoke", {
|
const res = await server.post("/api/shares.revoke", user, {
|
||||||
body: {
|
body: {
|
||||||
token: user.getJwtToken(),
|
|
||||||
id: share.id,
|
id: share.id,
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
@@ -1303,9 +1219,8 @@ describe("#shares.revoke", () => {
|
|||||||
teamId: user.teamId,
|
teamId: user.teamId,
|
||||||
userId: user.id,
|
userId: user.id,
|
||||||
});
|
});
|
||||||
const res = await server.post("/api/shares.revoke", {
|
const res = await server.post("/api/shares.revoke", user, {
|
||||||
body: {
|
body: {
|
||||||
token: user.getJwtToken(),
|
|
||||||
id: share.id,
|
id: share.id,
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
@@ -1324,9 +1239,8 @@ describe("#shares.revoke", () => {
|
|||||||
userId: user.id,
|
userId: user.id,
|
||||||
});
|
});
|
||||||
await withAPIContext(user, (ctx) => document.destroyWithCtx(ctx));
|
await withAPIContext(user, (ctx) => document.destroyWithCtx(ctx));
|
||||||
const res = await server.post("/api/shares.revoke", {
|
const res = await server.post("/api/shares.revoke", user, {
|
||||||
body: {
|
body: {
|
||||||
token: user.getJwtToken(),
|
|
||||||
id: share.id,
|
id: share.id,
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
@@ -1343,9 +1257,8 @@ describe("#shares.revoke", () => {
|
|||||||
teamId: user.teamId,
|
teamId: user.teamId,
|
||||||
userId: user.id,
|
userId: user.id,
|
||||||
});
|
});
|
||||||
const res = await server.post("/api/shares.revoke", {
|
const res = await server.post("/api/shares.revoke", admin, {
|
||||||
body: {
|
body: {
|
||||||
token: admin.getJwtToken(),
|
|
||||||
id: share.id,
|
id: share.id,
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
@@ -1383,9 +1296,8 @@ describe("#shares.revoke", () => {
|
|||||||
teamId: admin.teamId,
|
teamId: admin.teamId,
|
||||||
userId: admin.id,
|
userId: admin.id,
|
||||||
});
|
});
|
||||||
const res = await server.post("/api/shares.revoke", {
|
const res = await server.post("/api/shares.revoke", user, {
|
||||||
body: {
|
body: {
|
||||||
token: user.getJwtToken(),
|
|
||||||
id: share.id,
|
id: share.id,
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
|
|||||||
@@ -7,11 +7,7 @@ describe("#stars.create", () => {
|
|||||||
it("should fail with status 400 bad request when both documentId and collectionId are missing", async () => {
|
it("should fail with status 400 bad request when both documentId and collectionId are missing", async () => {
|
||||||
const user = await buildUser();
|
const user = await buildUser();
|
||||||
|
|
||||||
const res = await server.post("/api/stars.create", {
|
const res = await server.post("/api/stars.create", user);
|
||||||
body: {
|
|
||||||
token: user.getJwtToken(),
|
|
||||||
},
|
|
||||||
});
|
|
||||||
|
|
||||||
const body = await res.json();
|
const body = await res.json();
|
||||||
expect(res.status).toEqual(400);
|
expect(res.status).toEqual(400);
|
||||||
@@ -27,9 +23,8 @@ describe("#stars.create", () => {
|
|||||||
teamId: user.teamId,
|
teamId: user.teamId,
|
||||||
});
|
});
|
||||||
|
|
||||||
const res = await server.post("/api/stars.create", {
|
const res = await server.post("/api/stars.create", user, {
|
||||||
body: {
|
body: {
|
||||||
token: user.getJwtToken(),
|
|
||||||
documentId: document.id,
|
documentId: document.id,
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
@@ -55,11 +50,7 @@ describe("#stars.list", () => {
|
|||||||
userId: user.id,
|
userId: user.id,
|
||||||
});
|
});
|
||||||
|
|
||||||
const res = await server.post("/api/stars.list", {
|
const res = await server.post("/api/stars.list", user);
|
||||||
body: {
|
|
||||||
token: user.getJwtToken(),
|
|
||||||
},
|
|
||||||
});
|
|
||||||
|
|
||||||
const body = await res.json();
|
const body = await res.json();
|
||||||
expect(res.status).toEqual(200);
|
expect(res.status).toEqual(200);
|
||||||
@@ -76,11 +67,7 @@ describe("#stars.list", () => {
|
|||||||
describe("#stars.update", () => {
|
describe("#stars.update", () => {
|
||||||
it("should fail with status 400 bad request when id is missing", async () => {
|
it("should fail with status 400 bad request when id is missing", async () => {
|
||||||
const user = await buildUser();
|
const user = await buildUser();
|
||||||
const res = await server.post("/api/stars.update", {
|
const res = await server.post("/api/stars.update", user);
|
||||||
body: {
|
|
||||||
token: user.getJwtToken(),
|
|
||||||
},
|
|
||||||
});
|
|
||||||
const body = await res.json();
|
const body = await res.json();
|
||||||
expect(res.status).toEqual(400);
|
expect(res.status).toEqual(400);
|
||||||
expect(body.message).toEqual(
|
expect(body.message).toEqual(
|
||||||
@@ -93,9 +80,8 @@ describe("#stars.update", () => {
|
|||||||
const star = await buildStar({
|
const star = await buildStar({
|
||||||
userId: user.id,
|
userId: user.id,
|
||||||
});
|
});
|
||||||
const res = await server.post("/api/stars.update", {
|
const res = await server.post("/api/stars.update", user, {
|
||||||
body: {
|
body: {
|
||||||
token: user.getJwtToken(),
|
|
||||||
id: star.id,
|
id: star.id,
|
||||||
index: "i",
|
index: "i",
|
||||||
},
|
},
|
||||||
@@ -111,11 +97,7 @@ describe("#stars.update", () => {
|
|||||||
describe("#stars.delete", () => {
|
describe("#stars.delete", () => {
|
||||||
it("should fail with status 400 bad request when id is missing", async () => {
|
it("should fail with status 400 bad request when id is missing", async () => {
|
||||||
const user = await buildUser();
|
const user = await buildUser();
|
||||||
const res = await server.post("/api/stars.delete", {
|
const res = await server.post("/api/stars.delete", user);
|
||||||
body: {
|
|
||||||
token: user.getJwtToken(),
|
|
||||||
},
|
|
||||||
});
|
|
||||||
const body = await res.json();
|
const body = await res.json();
|
||||||
expect(res.status).toEqual(400);
|
expect(res.status).toEqual(400);
|
||||||
expect(body.message).toEqual(
|
expect(body.message).toEqual(
|
||||||
@@ -129,10 +111,9 @@ describe("#stars.delete", () => {
|
|||||||
userId: user.id,
|
userId: user.id,
|
||||||
});
|
});
|
||||||
|
|
||||||
const res = await server.post("/api/stars.delete", {
|
const res = await server.post("/api/stars.delete", user, {
|
||||||
body: {
|
body: {
|
||||||
id: star.id,
|
id: star.id,
|
||||||
token: user.getJwtToken(),
|
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|||||||
@@ -22,9 +22,8 @@ describe("#subscriptions.create", () => {
|
|||||||
teamId: user.teamId,
|
teamId: user.teamId,
|
||||||
});
|
});
|
||||||
|
|
||||||
const res = await server.post("/api/subscriptions.create", {
|
const res = await server.post("/api/subscriptions.create", user, {
|
||||||
body: {
|
body: {
|
||||||
token: user.getJwtToken(),
|
|
||||||
collectionId: collection.id,
|
collectionId: collection.id,
|
||||||
event: SubscriptionType.Document,
|
event: SubscriptionType.Document,
|
||||||
},
|
},
|
||||||
@@ -46,9 +45,8 @@ describe("#subscriptions.create", () => {
|
|||||||
teamId: user.teamId,
|
teamId: user.teamId,
|
||||||
});
|
});
|
||||||
|
|
||||||
const res = await server.post("/api/subscriptions.create", {
|
const res = await server.post("/api/subscriptions.create", user, {
|
||||||
body: {
|
body: {
|
||||||
token: user.getJwtToken(),
|
|
||||||
documentId: document.id,
|
documentId: document.id,
|
||||||
event: SubscriptionType.Document,
|
event: SubscriptionType.Document,
|
||||||
},
|
},
|
||||||
@@ -70,9 +68,8 @@ describe("#subscriptions.create", () => {
|
|||||||
teamId: user.teamId,
|
teamId: user.teamId,
|
||||||
});
|
});
|
||||||
|
|
||||||
const res = await server.post("/api/subscriptions.create", {
|
const res = await server.post("/api/subscriptions.create", user, {
|
||||||
body: {
|
body: {
|
||||||
token: user.getJwtToken(),
|
|
||||||
documentId: document.id,
|
documentId: document.id,
|
||||||
event: SubscriptionType.Document,
|
event: SubscriptionType.Document,
|
||||||
},
|
},
|
||||||
@@ -104,36 +101,32 @@ describe("#subscriptions.create", () => {
|
|||||||
});
|
});
|
||||||
|
|
||||||
// First `subscriptions.create` request.
|
// First `subscriptions.create` request.
|
||||||
await server.post("/api/subscriptions.create", {
|
await server.post("/api/subscriptions.create", user, {
|
||||||
body: {
|
body: {
|
||||||
token: user.getJwtToken(),
|
|
||||||
documentId: document.id,
|
documentId: document.id,
|
||||||
event: SubscriptionType.Document,
|
event: SubscriptionType.Document,
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
|
|
||||||
// Second `subscriptions.create` request.
|
// Second `subscriptions.create` request.
|
||||||
await server.post("/api/subscriptions.create", {
|
await server.post("/api/subscriptions.create", user, {
|
||||||
body: {
|
body: {
|
||||||
token: user.getJwtToken(),
|
|
||||||
documentId: document.id,
|
documentId: document.id,
|
||||||
event: SubscriptionType.Document,
|
event: SubscriptionType.Document,
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
|
|
||||||
// Third `subscriptions.create` request.
|
// Third `subscriptions.create` request.
|
||||||
await server.post("/api/subscriptions.create", {
|
await server.post("/api/subscriptions.create", user, {
|
||||||
body: {
|
body: {
|
||||||
token: user.getJwtToken(),
|
|
||||||
documentId: document.id,
|
documentId: document.id,
|
||||||
event: SubscriptionType.Document,
|
event: SubscriptionType.Document,
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
|
|
||||||
// List subscriptions associated with `document.id`
|
// List subscriptions associated with `document.id`
|
||||||
const res = await server.post("/api/subscriptions.list", {
|
const res = await server.post("/api/subscriptions.list", user, {
|
||||||
body: {
|
body: {
|
||||||
token: user.getJwtToken(),
|
|
||||||
documentId: document.id,
|
documentId: document.id,
|
||||||
event: SubscriptionType.Document,
|
event: SubscriptionType.Document,
|
||||||
},
|
},
|
||||||
@@ -156,9 +149,8 @@ describe("#subscriptions.create", () => {
|
|||||||
teamId: user.teamId,
|
teamId: user.teamId,
|
||||||
});
|
});
|
||||||
|
|
||||||
const res = await server.post("/api/subscriptions.create", {
|
const res = await server.post("/api/subscriptions.create", user, {
|
||||||
body: {
|
body: {
|
||||||
token: user.getJwtToken(),
|
|
||||||
documentId: document.id,
|
documentId: document.id,
|
||||||
// Subscription on event that cannot be subscribed to.
|
// Subscription on event that cannot be subscribed to.
|
||||||
event: "documents.publish",
|
event: "documents.publish",
|
||||||
@@ -178,9 +170,8 @@ describe("#subscriptions.create", () => {
|
|||||||
it("should throw 400 when neither documentId nor collectionId is provided", async () => {
|
it("should throw 400 when neither documentId nor collectionId is provided", async () => {
|
||||||
const user = await buildUser();
|
const user = await buildUser();
|
||||||
|
|
||||||
const res = await server.post("/api/subscriptions.create", {
|
const res = await server.post("/api/subscriptions.create", user, {
|
||||||
body: {
|
body: {
|
||||||
token: user.getJwtToken(),
|
|
||||||
event: SubscriptionType.Document,
|
event: SubscriptionType.Document,
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
@@ -205,9 +196,8 @@ describe("#subscriptions.create", () => {
|
|||||||
teamId: user.teamId,
|
teamId: user.teamId,
|
||||||
});
|
});
|
||||||
|
|
||||||
const res = await server.post("/api/subscriptions.create", {
|
const res = await server.post("/api/subscriptions.create", user, {
|
||||||
body: {
|
body: {
|
||||||
token: user.getJwtToken(),
|
|
||||||
collectionId: collection.id,
|
collectionId: collection.id,
|
||||||
documentId: document.id,
|
documentId: document.id,
|
||||||
event: SubscriptionType.Document,
|
event: SubscriptionType.Document,
|
||||||
@@ -236,9 +226,8 @@ describe("#subscriptions.create", () => {
|
|||||||
teamId: otherUser.teamId,
|
teamId: otherUser.teamId,
|
||||||
});
|
});
|
||||||
|
|
||||||
const res = await server.post("/api/subscriptions.create", {
|
const res = await server.post("/api/subscriptions.create", user, {
|
||||||
body: {
|
body: {
|
||||||
token: user.getJwtToken(),
|
|
||||||
collectionId: collection.id,
|
collectionId: collection.id,
|
||||||
documentId: otherDocument.id,
|
documentId: otherDocument.id,
|
||||||
event: SubscriptionType.Document,
|
event: SubscriptionType.Document,
|
||||||
@@ -265,17 +254,15 @@ describe("#subscriptions.info", () => {
|
|||||||
teamId: user.teamId,
|
teamId: user.teamId,
|
||||||
});
|
});
|
||||||
|
|
||||||
await server.post("/api/subscriptions.create", {
|
await server.post("/api/subscriptions.create", subscriber, {
|
||||||
body: {
|
body: {
|
||||||
token: subscriber.getJwtToken(),
|
|
||||||
collectionId: collection.id,
|
collectionId: collection.id,
|
||||||
event: SubscriptionType.Document,
|
event: SubscriptionType.Document,
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
|
|
||||||
const res = await server.post("/api/subscriptions.info", {
|
const res = await server.post("/api/subscriptions.info", subscriber, {
|
||||||
body: {
|
body: {
|
||||||
token: subscriber.getJwtToken(),
|
|
||||||
collectionId: collection.id,
|
collectionId: collection.id,
|
||||||
event: SubscriptionType.Document,
|
event: SubscriptionType.Document,
|
||||||
},
|
},
|
||||||
@@ -305,18 +292,16 @@ describe("#subscriptions.info", () => {
|
|||||||
});
|
});
|
||||||
|
|
||||||
// `subscriber` subscribes to `document0`.
|
// `subscriber` subscribes to `document0`.
|
||||||
await server.post("/api/subscriptions.create", {
|
await server.post("/api/subscriptions.create", subscriber, {
|
||||||
body: {
|
body: {
|
||||||
token: subscriber.getJwtToken(),
|
|
||||||
documentId: document0.id,
|
documentId: document0.id,
|
||||||
event: SubscriptionType.Document,
|
event: SubscriptionType.Document,
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
|
|
||||||
// `subscriber` subscribes to `document1`.
|
// `subscriber` subscribes to `document1`.
|
||||||
await server.post("/api/subscriptions.create", {
|
await server.post("/api/subscriptions.create", subscriber, {
|
||||||
body: {
|
body: {
|
||||||
token: subscriber.getJwtToken(),
|
|
||||||
documentId: document1.id,
|
documentId: document1.id,
|
||||||
event: SubscriptionType.Document,
|
event: SubscriptionType.Document,
|
||||||
},
|
},
|
||||||
@@ -324,13 +309,16 @@ describe("#subscriptions.info", () => {
|
|||||||
|
|
||||||
// `subscriber` wants info about
|
// `subscriber` wants info about
|
||||||
// their subscription on `document0`.
|
// their subscription on `document0`.
|
||||||
const subscription0 = await server.post("/api/subscriptions.info", {
|
const subscription0 = await server.post(
|
||||||
body: {
|
"/api/subscriptions.info",
|
||||||
token: subscriber.getJwtToken(),
|
subscriber,
|
||||||
documentId: document0.id,
|
{
|
||||||
event: SubscriptionType.Document,
|
body: {
|
||||||
},
|
documentId: document0.id,
|
||||||
});
|
event: SubscriptionType.Document,
|
||||||
|
},
|
||||||
|
}
|
||||||
|
);
|
||||||
|
|
||||||
const response0 = await subscription0.json();
|
const response0 = await subscription0.json();
|
||||||
|
|
||||||
@@ -343,9 +331,8 @@ describe("#subscriptions.info", () => {
|
|||||||
it("should throw 400 when neither documentId nor collectionId is provided", async () => {
|
it("should throw 400 when neither documentId nor collectionId is provided", async () => {
|
||||||
const user = await buildUser();
|
const user = await buildUser();
|
||||||
|
|
||||||
const res = await server.post("/api/subscriptions.info", {
|
const res = await server.post("/api/subscriptions.info", user, {
|
||||||
body: {
|
body: {
|
||||||
token: user.getJwtToken(),
|
|
||||||
event: SubscriptionType.Document,
|
event: SubscriptionType.Document,
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
@@ -367,9 +354,8 @@ describe("#subscriptions.info", () => {
|
|||||||
teamId: author.teamId,
|
teamId: author.teamId,
|
||||||
});
|
});
|
||||||
|
|
||||||
const res = await server.post("/api/subscriptions.info", {
|
const res = await server.post("/api/subscriptions.info", subscriber, {
|
||||||
body: {
|
body: {
|
||||||
token: subscriber.getJwtToken(),
|
|
||||||
documentId: document.id,
|
documentId: document.id,
|
||||||
event: SubscriptionType.Document,
|
event: SubscriptionType.Document,
|
||||||
},
|
},
|
||||||
@@ -396,27 +382,24 @@ describe("#subscriptions.info", () => {
|
|||||||
});
|
});
|
||||||
|
|
||||||
// `subscriber` subscribes to `document0`.
|
// `subscriber` subscribes to `document0`.
|
||||||
await server.post("/api/subscriptions.create", {
|
await server.post("/api/subscriptions.create", subscriber, {
|
||||||
body: {
|
body: {
|
||||||
token: subscriber.getJwtToken(),
|
|
||||||
documentId: document0.id,
|
documentId: document0.id,
|
||||||
event: SubscriptionType.Document,
|
event: SubscriptionType.Document,
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
|
|
||||||
// `subscriber` subscribes to `document1`.
|
// `subscriber` subscribes to `document1`.
|
||||||
await server.post("/api/subscriptions.create", {
|
await server.post("/api/subscriptions.create", subscriber, {
|
||||||
body: {
|
body: {
|
||||||
token: subscriber.getJwtToken(),
|
|
||||||
documentId: document1.id,
|
documentId: document1.id,
|
||||||
event: SubscriptionType.Document,
|
event: SubscriptionType.Document,
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
|
|
||||||
// `viewer` wants info about `subscriber`'s subscription on `document0`.
|
// `viewer` wants info about `subscriber`'s subscription on `document0`.
|
||||||
const subscription0 = await server.post("/api/subscriptions.info", {
|
const subscription0 = await server.post("/api/subscriptions.info", viewer, {
|
||||||
body: {
|
body: {
|
||||||
token: viewer.getJwtToken(),
|
|
||||||
documentId: document0.id,
|
documentId: document0.id,
|
||||||
event: SubscriptionType.Document,
|
event: SubscriptionType.Document,
|
||||||
},
|
},
|
||||||
@@ -431,9 +414,8 @@ describe("#subscriptions.info", () => {
|
|||||||
expect(response0.message).toEqual("Authorization error");
|
expect(response0.message).toEqual("Authorization error");
|
||||||
|
|
||||||
// `viewer` wants info about `subscriber`'s subscription on `document0`.
|
// `viewer` wants info about `subscriber`'s subscription on `document0`.
|
||||||
const subscription1 = await server.post("/api/subscriptions.info", {
|
const subscription1 = await server.post("/api/subscriptions.info", viewer, {
|
||||||
body: {
|
body: {
|
||||||
token: viewer.getJwtToken(),
|
|
||||||
documentId: document1.id,
|
documentId: document1.id,
|
||||||
event: SubscriptionType.Document,
|
event: SubscriptionType.Document,
|
||||||
},
|
},
|
||||||
@@ -467,27 +449,24 @@ describe("#subscriptions.info", () => {
|
|||||||
});
|
});
|
||||||
|
|
||||||
// `subscriber` subscribes to `document0`.
|
// `subscriber` subscribes to `document0`.
|
||||||
await server.post("/api/subscriptions.create", {
|
await server.post("/api/subscriptions.create", subscriber, {
|
||||||
body: {
|
body: {
|
||||||
token: subscriber.getJwtToken(),
|
|
||||||
documentId: document0.id,
|
documentId: document0.id,
|
||||||
event: SubscriptionType.Document,
|
event: SubscriptionType.Document,
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
|
|
||||||
// `subscriber` subscribes to `document1`.
|
// `subscriber` subscribes to `document1`.
|
||||||
await server.post("/api/subscriptions.create", {
|
await server.post("/api/subscriptions.create", subscriber, {
|
||||||
body: {
|
body: {
|
||||||
token: subscriber.getJwtToken(),
|
|
||||||
documentId: document1.id,
|
documentId: document1.id,
|
||||||
event: SubscriptionType.Document,
|
event: SubscriptionType.Document,
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
|
|
||||||
// `viewer` wants info about `subscriber`'s subscription on `document0` - they have requested an invalid event.
|
// `viewer` wants info about `subscriber`'s subscription on `document0` - they have requested an invalid event.
|
||||||
const subscription0 = await server.post("/api/subscriptions.info", {
|
const subscription0 = await server.post("/api/subscriptions.info", viewer, {
|
||||||
body: {
|
body: {
|
||||||
token: viewer.getJwtToken(),
|
|
||||||
documentId: document0.id,
|
documentId: document0.id,
|
||||||
event: "documents.changed",
|
event: "documents.changed",
|
||||||
},
|
},
|
||||||
@@ -505,9 +484,8 @@ describe("#subscriptions.info", () => {
|
|||||||
// `viewer` wants info about `subscriber`'s
|
// `viewer` wants info about `subscriber`'s
|
||||||
// subscription on `document0`.
|
// subscription on `document0`.
|
||||||
// They have requested an invalid event.
|
// They have requested an invalid event.
|
||||||
const subscription1 = await server.post("/api/subscriptions.info", {
|
const subscription1 = await server.post("/api/subscriptions.info", viewer, {
|
||||||
body: {
|
body: {
|
||||||
token: viewer.getJwtToken(),
|
|
||||||
documentId: document1.id,
|
documentId: document1.id,
|
||||||
event: "doc.affected",
|
event: "doc.affected",
|
||||||
},
|
},
|
||||||
@@ -538,9 +516,8 @@ describe("#subscriptions.list", () => {
|
|||||||
documentId: document.id,
|
documentId: document.id,
|
||||||
});
|
});
|
||||||
|
|
||||||
const res = await server.post("/api/subscriptions.list", {
|
const res = await server.post("/api/subscriptions.list", user, {
|
||||||
body: {
|
body: {
|
||||||
token: user.getJwtToken(),
|
|
||||||
documentId: document.id,
|
documentId: document.id,
|
||||||
event: SubscriptionType.Document,
|
event: SubscriptionType.Document,
|
||||||
},
|
},
|
||||||
@@ -570,9 +547,8 @@ describe("#subscriptions.list", () => {
|
|||||||
|
|
||||||
// `subscriber0` wants to be notified about
|
// `subscriber0` wants to be notified about
|
||||||
// changes on this document.
|
// changes on this document.
|
||||||
await server.post("/api/subscriptions.create", {
|
await server.post("/api/subscriptions.create", subscriber0, {
|
||||||
body: {
|
body: {
|
||||||
token: subscriber0.getJwtToken(),
|
|
||||||
documentId: document.id,
|
documentId: document.id,
|
||||||
event: "documents.update",
|
event: "documents.update",
|
||||||
},
|
},
|
||||||
@@ -580,9 +556,8 @@ describe("#subscriptions.list", () => {
|
|||||||
|
|
||||||
// `subscriber1` wants to be notified about
|
// `subscriber1` wants to be notified about
|
||||||
// changes on this document.
|
// changes on this document.
|
||||||
await server.post("/api/subscriptions.create", {
|
await server.post("/api/subscriptions.create", subscriber1, {
|
||||||
body: {
|
body: {
|
||||||
token: subscriber1.getJwtToken(),
|
|
||||||
documentId: document.id,
|
documentId: document.id,
|
||||||
event: "documents.update",
|
event: "documents.update",
|
||||||
},
|
},
|
||||||
@@ -590,9 +565,8 @@ describe("#subscriptions.list", () => {
|
|||||||
|
|
||||||
// `viewer` just wants to know the subscribers
|
// `viewer` just wants to know the subscribers
|
||||||
// for this document.
|
// for this document.
|
||||||
const res = await server.post("/api/subscriptions.list", {
|
const res = await server.post("/api/subscriptions.list", viewer, {
|
||||||
body: {
|
body: {
|
||||||
token: viewer.getJwtToken(),
|
|
||||||
documentId: document.id,
|
documentId: document.id,
|
||||||
event: "documents.update",
|
event: "documents.update",
|
||||||
},
|
},
|
||||||
@@ -606,9 +580,8 @@ describe("#subscriptions.list", () => {
|
|||||||
|
|
||||||
// `subscriber0` wants to know the subscribers
|
// `subscriber0` wants to know the subscribers
|
||||||
// for this document.
|
// for this document.
|
||||||
const res0 = await server.post("/api/subscriptions.list", {
|
const res0 = await server.post("/api/subscriptions.list", subscriber0, {
|
||||||
body: {
|
body: {
|
||||||
token: subscriber0.getJwtToken(),
|
|
||||||
documentId: document.id,
|
documentId: document.id,
|
||||||
event: "documents.update",
|
event: "documents.update",
|
||||||
},
|
},
|
||||||
@@ -623,9 +596,8 @@ describe("#subscriptions.list", () => {
|
|||||||
|
|
||||||
// `subscriber1` wants to know the subscribers
|
// `subscriber1` wants to know the subscribers
|
||||||
// for this document.
|
// for this document.
|
||||||
const res1 = await server.post("/api/subscriptions.list", {
|
const res1 = await server.post("/api/subscriptions.list", subscriber1, {
|
||||||
body: {
|
body: {
|
||||||
token: subscriber1.getJwtToken(),
|
|
||||||
documentId: document.id,
|
documentId: document.id,
|
||||||
event: "documents.update",
|
event: "documents.update",
|
||||||
},
|
},
|
||||||
@@ -654,9 +626,8 @@ describe("#subscriptions.list", () => {
|
|||||||
|
|
||||||
// `subscriber0` wants to be notified about
|
// `subscriber0` wants to be notified about
|
||||||
// changes on this document.
|
// changes on this document.
|
||||||
await server.post("/api/subscriptions.create", {
|
await server.post("/api/subscriptions.create", subscriber0, {
|
||||||
body: {
|
body: {
|
||||||
token: subscriber0.getJwtToken(),
|
|
||||||
documentId: document.id,
|
documentId: document.id,
|
||||||
event: "documents.update",
|
event: "documents.update",
|
||||||
},
|
},
|
||||||
@@ -664,9 +635,8 @@ describe("#subscriptions.list", () => {
|
|||||||
|
|
||||||
// `subscriber1` wants to be notified about
|
// `subscriber1` wants to be notified about
|
||||||
// changes on this document.
|
// changes on this document.
|
||||||
await server.post("/api/subscriptions.create", {
|
await server.post("/api/subscriptions.create", subscriber1, {
|
||||||
body: {
|
body: {
|
||||||
token: subscriber1.getJwtToken(),
|
|
||||||
documentId: document.id,
|
documentId: document.id,
|
||||||
event: "documents.update",
|
event: "documents.update",
|
||||||
},
|
},
|
||||||
@@ -674,9 +644,8 @@ describe("#subscriptions.list", () => {
|
|||||||
|
|
||||||
// `viewer` just wants to know the subscribers
|
// `viewer` just wants to know the subscribers
|
||||||
// for this document.
|
// for this document.
|
||||||
const res = await server.post("/api/subscriptions.list", {
|
const res = await server.post("/api/subscriptions.list", viewer, {
|
||||||
body: {
|
body: {
|
||||||
token: viewer.getJwtToken(),
|
|
||||||
documentId: document.id,
|
documentId: document.id,
|
||||||
event: "changes.on.documents",
|
event: "changes.on.documents",
|
||||||
},
|
},
|
||||||
@@ -707,9 +676,8 @@ describe("#subscriptions.list", () => {
|
|||||||
|
|
||||||
// `subscriber0` wants to be notified about
|
// `subscriber0` wants to be notified about
|
||||||
// changes on this document.
|
// changes on this document.
|
||||||
await server.post("/api/subscriptions.create", {
|
await server.post("/api/subscriptions.create", subscriber0, {
|
||||||
body: {
|
body: {
|
||||||
token: subscriber0.getJwtToken(),
|
|
||||||
documentId: document.id,
|
documentId: document.id,
|
||||||
event: "documents.update",
|
event: "documents.update",
|
||||||
},
|
},
|
||||||
@@ -717,9 +685,8 @@ describe("#subscriptions.list", () => {
|
|||||||
|
|
||||||
// `subscriber1` wants to be notified about
|
// `subscriber1` wants to be notified about
|
||||||
// changes on this document.
|
// changes on this document.
|
||||||
await server.post("/api/subscriptions.create", {
|
await server.post("/api/subscriptions.create", subscriber1, {
|
||||||
body: {
|
body: {
|
||||||
token: subscriber1.getJwtToken(),
|
|
||||||
documentId: document.id,
|
documentId: document.id,
|
||||||
event: "documents.update",
|
event: "documents.update",
|
||||||
},
|
},
|
||||||
@@ -727,9 +694,8 @@ describe("#subscriptions.list", () => {
|
|||||||
|
|
||||||
// `viewer` wants to know the subscribers
|
// `viewer` wants to know the subscribers
|
||||||
// for this internal document.
|
// for this internal document.
|
||||||
const res = await server.post("/api/subscriptions.info", {
|
const res = await server.post("/api/subscriptions.info", viewer, {
|
||||||
body: {
|
body: {
|
||||||
token: viewer.getJwtToken(),
|
|
||||||
documentId: document.id,
|
documentId: document.id,
|
||||||
event: "documents.update",
|
event: "documents.update",
|
||||||
},
|
},
|
||||||
@@ -748,9 +714,8 @@ describe("#subscriptions.list", () => {
|
|||||||
it("should throw 400 when neither documentId nor collectionId is provided", async () => {
|
it("should throw 400 when neither documentId nor collectionId is provided", async () => {
|
||||||
const user = await buildUser();
|
const user = await buildUser();
|
||||||
|
|
||||||
const res = await server.post("/api/subscriptions.list", {
|
const res = await server.post("/api/subscriptions.list", user, {
|
||||||
body: {
|
body: {
|
||||||
token: user.getJwtToken(),
|
|
||||||
event: SubscriptionType.Document,
|
event: SubscriptionType.Document,
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
@@ -870,10 +835,9 @@ describe("#subscriptions.delete", () => {
|
|||||||
documentId: document.id,
|
documentId: document.id,
|
||||||
});
|
});
|
||||||
|
|
||||||
const res = await server.post("/api/subscriptions.delete", {
|
const res = await server.post("/api/subscriptions.delete", user, {
|
||||||
body: {
|
body: {
|
||||||
id: subscription.id,
|
id: subscription.id,
|
||||||
token: user.getJwtToken(),
|
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
|
|
||||||
@@ -904,10 +868,9 @@ describe("#subscriptions.delete", () => {
|
|||||||
collectionId: collection.id,
|
collectionId: collection.id,
|
||||||
});
|
});
|
||||||
|
|
||||||
const res = await server.post("/api/subscriptions.delete", {
|
const res = await server.post("/api/subscriptions.delete", user, {
|
||||||
body: {
|
body: {
|
||||||
id: subscription.id,
|
id: subscription.id,
|
||||||
token: user.getJwtToken(),
|
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
|
|
||||||
@@ -943,9 +906,8 @@ describe("#subscriptions.delete", () => {
|
|||||||
|
|
||||||
// `subscriber0` wants to be notified about
|
// `subscriber0` wants to be notified about
|
||||||
// changes on this document.
|
// changes on this document.
|
||||||
await server.post("/api/subscriptions.create", {
|
await server.post("/api/subscriptions.create", subscriber0, {
|
||||||
body: {
|
body: {
|
||||||
token: subscriber0.getJwtToken(),
|
|
||||||
documentId: document.id,
|
documentId: document.id,
|
||||||
event: "documents.update",
|
event: "documents.update",
|
||||||
},
|
},
|
||||||
@@ -953,9 +915,8 @@ describe("#subscriptions.delete", () => {
|
|||||||
|
|
||||||
// `subscriber1` wants to be notified about
|
// `subscriber1` wants to be notified about
|
||||||
// changes on this document.
|
// changes on this document.
|
||||||
const resp = await server.post("/api/subscriptions.create", {
|
const resp = await server.post("/api/subscriptions.create", subscriber1, {
|
||||||
body: {
|
body: {
|
||||||
token: subscriber1.getJwtToken(),
|
|
||||||
documentId: document.id,
|
documentId: document.id,
|
||||||
event: "documents.update",
|
event: "documents.update",
|
||||||
},
|
},
|
||||||
@@ -966,10 +927,9 @@ describe("#subscriptions.delete", () => {
|
|||||||
|
|
||||||
// `subscriber0` wants to change `subscriber1`'s
|
// `subscriber0` wants to change `subscriber1`'s
|
||||||
// subscription for this document.
|
// subscription for this document.
|
||||||
const res = await server.post("/api/subscriptions.delete", {
|
const res = await server.post("/api/subscriptions.delete", subscriber0, {
|
||||||
body: {
|
body: {
|
||||||
id: subscription1Id,
|
id: subscription1Id,
|
||||||
token: subscriber0.getJwtToken(),
|
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|||||||
@@ -15,9 +15,8 @@ describe("teams.create", () => {
|
|||||||
const team = await buildTeam();
|
const team = await buildTeam();
|
||||||
const user = await buildAdmin({ teamId: team.id });
|
const user = await buildAdmin({ teamId: team.id });
|
||||||
const name = faker.company.name();
|
const name = faker.company.name();
|
||||||
const res = await server.post("/api/teams.create", {
|
const res = await server.post("/api/teams.create", user, {
|
||||||
body: {
|
body: {
|
||||||
token: user.getJwtToken(),
|
|
||||||
name,
|
name,
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
@@ -31,9 +30,8 @@ describe("teams.create", () => {
|
|||||||
|
|
||||||
const team = await buildTeam();
|
const team = await buildTeam();
|
||||||
const user = await buildAdmin({ teamId: team.id });
|
const user = await buildAdmin({ teamId: team.id });
|
||||||
const res = await server.post("/api/teams.create", {
|
const res = await server.post("/api/teams.create", user, {
|
||||||
body: {
|
body: {
|
||||||
token: user.getJwtToken(),
|
|
||||||
name: faker.company.name(),
|
name: faker.company.name(),
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
@@ -45,9 +43,8 @@ describe("#team.update", () => {
|
|||||||
it("should update team details", async () => {
|
it("should update team details", async () => {
|
||||||
const admin = await buildAdmin();
|
const admin = await buildAdmin();
|
||||||
const name = faker.company.name();
|
const name = faker.company.name();
|
||||||
const res = await server.post("/api/team.update", {
|
const res = await server.post("/api/team.update", admin, {
|
||||||
body: {
|
body: {
|
||||||
token: admin.getJwtToken(),
|
|
||||||
name,
|
name,
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
@@ -59,9 +56,8 @@ describe("#team.update", () => {
|
|||||||
it("should add avatar", async () => {
|
it("should add avatar", async () => {
|
||||||
const team = await buildTeam();
|
const team = await buildTeam();
|
||||||
const admin = await buildAdmin({ teamId: team.id });
|
const admin = await buildAdmin({ teamId: team.id });
|
||||||
const res = await server.post("/api/team.update", {
|
const res = await server.post("/api/team.update", admin, {
|
||||||
body: {
|
body: {
|
||||||
token: admin.getJwtToken(),
|
|
||||||
avatarUrl: "https://random-url.com",
|
avatarUrl: "https://random-url.com",
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
@@ -73,9 +69,8 @@ describe("#team.update", () => {
|
|||||||
it("should remove avatar", async () => {
|
it("should remove avatar", async () => {
|
||||||
const team = await buildTeam({ avatarUrl: "https://random-url.com" });
|
const team = await buildTeam({ avatarUrl: "https://random-url.com" });
|
||||||
const admin = await buildAdmin({ teamId: team.id });
|
const admin = await buildAdmin({ teamId: team.id });
|
||||||
const res = await server.post("/api/team.update", {
|
const res = await server.post("/api/team.update", admin, {
|
||||||
body: {
|
body: {
|
||||||
token: admin.getJwtToken(),
|
|
||||||
avatarUrl: null,
|
avatarUrl: null,
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
@@ -86,9 +81,8 @@ describe("#team.update", () => {
|
|||||||
|
|
||||||
it("should not invalidate request if subdomain is sent as null", async () => {
|
it("should not invalidate request if subdomain is sent as null", async () => {
|
||||||
const admin = await buildAdmin();
|
const admin = await buildAdmin();
|
||||||
const res = await server.post("/api/team.update", {
|
const res = await server.post("/api/team.update", admin, {
|
||||||
body: {
|
body: {
|
||||||
token: admin.getJwtToken(),
|
|
||||||
subdomain: null,
|
subdomain: null,
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
@@ -100,9 +94,8 @@ describe("#team.update", () => {
|
|||||||
const admin = await buildAdmin({ teamId: team.id });
|
const admin = await buildAdmin({ teamId: team.id });
|
||||||
const domain1 = faker.internet.domainName();
|
const domain1 = faker.internet.domainName();
|
||||||
const domain2 = faker.internet.domainName();
|
const domain2 = faker.internet.domainName();
|
||||||
const res = await server.post("/api/team.update", {
|
const res = await server.post("/api/team.update", admin, {
|
||||||
body: {
|
body: {
|
||||||
token: admin.getJwtToken(),
|
|
||||||
allowedDomains: [domain1, "", domain2, "", ""],
|
allowedDomains: [domain1, "", domain2, "", ""],
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
@@ -127,9 +120,8 @@ describe("#team.update", () => {
|
|||||||
createdById: admin.id,
|
createdById: admin.id,
|
||||||
});
|
});
|
||||||
|
|
||||||
const res = await server.post("/api/team.update", {
|
const res = await server.post("/api/team.update", admin, {
|
||||||
body: {
|
body: {
|
||||||
token: admin.getJwtToken(),
|
|
||||||
allowedDomains: [],
|
allowedDomains: [],
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
@@ -156,9 +148,8 @@ describe("#team.update", () => {
|
|||||||
const domain1 = faker.internet.domainName();
|
const domain1 = faker.internet.domainName();
|
||||||
const domain2 = faker.internet.domainName();
|
const domain2 = faker.internet.domainName();
|
||||||
|
|
||||||
const res = await server.post("/api/team.update", {
|
const res = await server.post("/api/team.update", admin, {
|
||||||
body: {
|
body: {
|
||||||
token: admin.getJwtToken(),
|
|
||||||
allowedDomains: [domain1, domain2],
|
allowedDomains: [domain1, domain2],
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
@@ -177,16 +168,14 @@ describe("#team.update", () => {
|
|||||||
|
|
||||||
it("should only allow member,viewer or admin as default role", async () => {
|
it("should only allow member,viewer or admin as default role", async () => {
|
||||||
const admin = await buildAdmin();
|
const admin = await buildAdmin();
|
||||||
const res = await server.post("/api/team.update", {
|
const res = await server.post("/api/team.update", admin, {
|
||||||
body: {
|
body: {
|
||||||
token: admin.getJwtToken(),
|
|
||||||
defaultUserRole: "New name",
|
defaultUserRole: "New name",
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
expect(res.status).toEqual(400);
|
expect(res.status).toEqual(400);
|
||||||
const successRes = await server.post("/api/team.update", {
|
const successRes = await server.post("/api/team.update", admin, {
|
||||||
body: {
|
body: {
|
||||||
token: admin.getJwtToken(),
|
|
||||||
defaultUserRole: "viewer",
|
defaultUserRole: "viewer",
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
@@ -198,9 +187,8 @@ describe("#team.update", () => {
|
|||||||
it("should allow identical team details", async () => {
|
it("should allow identical team details", async () => {
|
||||||
const team = await buildTeam();
|
const team = await buildTeam();
|
||||||
const admin = await buildAdmin({ teamId: team.id });
|
const admin = await buildAdmin({ teamId: team.id });
|
||||||
const res = await server.post("/api/team.update", {
|
const res = await server.post("/api/team.update", admin, {
|
||||||
body: {
|
body: {
|
||||||
token: admin.getJwtToken(),
|
|
||||||
name: team.name,
|
name: team.name,
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
@@ -211,9 +199,8 @@ describe("#team.update", () => {
|
|||||||
|
|
||||||
it("should require admin", async () => {
|
it("should require admin", async () => {
|
||||||
const user = await buildUser();
|
const user = await buildUser();
|
||||||
const res = await server.post("/api/team.update", {
|
const res = await server.post("/api/team.update", user, {
|
||||||
body: {
|
body: {
|
||||||
token: user.getJwtToken(),
|
|
||||||
name: faker.company.name(),
|
name: faker.company.name(),
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
@@ -227,9 +214,8 @@ describe("#team.update", () => {
|
|||||||
|
|
||||||
it("should not allow setting team name to null", async () => {
|
it("should not allow setting team name to null", async () => {
|
||||||
const admin = await buildAdmin();
|
const admin = await buildAdmin();
|
||||||
const res = await server.post("/api/team.update", {
|
const res = await server.post("/api/team.update", admin, {
|
||||||
body: {
|
body: {
|
||||||
token: admin.getJwtToken(),
|
|
||||||
name: null,
|
name: null,
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
@@ -244,9 +230,8 @@ describe("#team.update", () => {
|
|||||||
userId: admin.id,
|
userId: admin.id,
|
||||||
});
|
});
|
||||||
|
|
||||||
const res = await server.post("/api/team.update", {
|
const res = await server.post("/api/team.update", admin, {
|
||||||
body: {
|
body: {
|
||||||
token: admin.getJwtToken(),
|
|
||||||
defaultCollectionId: collection.id,
|
defaultCollectionId: collection.id,
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
@@ -268,9 +253,8 @@ describe("#team.update", () => {
|
|||||||
userId: admin.id,
|
userId: admin.id,
|
||||||
});
|
});
|
||||||
|
|
||||||
const res = await server.post("/api/team.update", {
|
const res = await server.post("/api/team.update", admin, {
|
||||||
body: {
|
body: {
|
||||||
token: admin.getJwtToken(),
|
|
||||||
defaultCollectionId: collection.id,
|
defaultCollectionId: collection.id,
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
@@ -279,9 +263,8 @@ describe("#team.update", () => {
|
|||||||
expect(res.status).toEqual(200);
|
expect(res.status).toEqual(200);
|
||||||
expect(body.data.defaultCollectionId).toEqual(collection.id);
|
expect(body.data.defaultCollectionId).toEqual(collection.id);
|
||||||
|
|
||||||
const updateRes = await server.post("/api/collections.update", {
|
const updateRes = await server.post("/api/collections.update", admin, {
|
||||||
body: {
|
body: {
|
||||||
token: admin.getJwtToken(),
|
|
||||||
id: collection.id,
|
id: collection.id,
|
||||||
permission: null,
|
permission: null,
|
||||||
},
|
},
|
||||||
@@ -289,11 +272,7 @@ describe("#team.update", () => {
|
|||||||
|
|
||||||
expect(updateRes.status).toEqual(200);
|
expect(updateRes.status).toEqual(200);
|
||||||
|
|
||||||
const res3 = await server.post("/api/auth.info", {
|
const res3 = await server.post("/api/auth.info", admin);
|
||||||
body: {
|
|
||||||
token: admin.getJwtToken(),
|
|
||||||
},
|
|
||||||
});
|
|
||||||
const body3 = await res3.json();
|
const body3 = await res3.json();
|
||||||
expect(res3.status).toEqual(200);
|
expect(res3.status).toEqual(200);
|
||||||
expect(body3.data.team.defaultCollectionId).toEqual(null);
|
expect(body3.data.team.defaultCollectionId).toEqual(null);
|
||||||
|
|||||||
@@ -20,11 +20,7 @@ describe("#templates.list", () => {
|
|||||||
teamId: user.teamId,
|
teamId: user.teamId,
|
||||||
});
|
});
|
||||||
|
|
||||||
const res = await server.post("/api/templates.list", {
|
const res = await server.post("/api/templates.list", user);
|
||||||
body: {
|
|
||||||
token: user.getJwtToken(),
|
|
||||||
},
|
|
||||||
});
|
|
||||||
|
|
||||||
const body = await res.json();
|
const body = await res.json();
|
||||||
expect(res.status).toEqual(200);
|
expect(res.status).toEqual(200);
|
||||||
@@ -45,9 +41,8 @@ describe("#templates.list", () => {
|
|||||||
collectionId: collection.id,
|
collectionId: collection.id,
|
||||||
});
|
});
|
||||||
|
|
||||||
const res = await server.post("/api/templates.list", {
|
const res = await server.post("/api/templates.list", user, {
|
||||||
body: {
|
body: {
|
||||||
token: user.getJwtToken(),
|
|
||||||
collectionId: collection.id,
|
collectionId: collection.id,
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
@@ -72,9 +67,8 @@ describe("#templates.info", () => {
|
|||||||
teamId: user.teamId,
|
teamId: user.teamId,
|
||||||
});
|
});
|
||||||
|
|
||||||
const res = await server.post("/api/templates.info", {
|
const res = await server.post("/api/templates.info", user, {
|
||||||
body: {
|
body: {
|
||||||
token: user.getJwtToken(),
|
|
||||||
id: template.id,
|
id: template.id,
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
@@ -92,9 +86,8 @@ describe("#templates.info", () => {
|
|||||||
|
|
||||||
it("should fail for invalid template id", async () => {
|
it("should fail for invalid template id", async () => {
|
||||||
const user = await buildUser();
|
const user = await buildUser();
|
||||||
const res = await server.post("/api/templates.info", {
|
const res = await server.post("/api/templates.info", user, {
|
||||||
body: {
|
body: {
|
||||||
token: user.getJwtToken(),
|
|
||||||
id: "invalid",
|
id: "invalid",
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
@@ -112,9 +105,8 @@ describe("#templates.update", () => {
|
|||||||
title: "Original title",
|
title: "Original title",
|
||||||
});
|
});
|
||||||
|
|
||||||
const res = await server.post("/api/templates.update", {
|
const res = await server.post("/api/templates.update", user, {
|
||||||
body: {
|
body: {
|
||||||
token: user.getJwtToken(),
|
|
||||||
id: template.id,
|
id: template.id,
|
||||||
title: "New title",
|
title: "New title",
|
||||||
},
|
},
|
||||||
@@ -148,9 +140,8 @@ describe("#templates.update", () => {
|
|||||||
],
|
],
|
||||||
};
|
};
|
||||||
|
|
||||||
const res = await server.post("/api/templates.update", {
|
const res = await server.post("/api/templates.update", user, {
|
||||||
body: {
|
body: {
|
||||||
token: user.getJwtToken(),
|
|
||||||
id: template.id,
|
id: template.id,
|
||||||
data,
|
data,
|
||||||
},
|
},
|
||||||
@@ -173,9 +164,8 @@ describe("#templates.update", () => {
|
|||||||
teamId: admin.teamId,
|
teamId: admin.teamId,
|
||||||
});
|
});
|
||||||
|
|
||||||
const res = await server.post("/api/templates.update", {
|
const res = await server.post("/api/templates.update", admin, {
|
||||||
body: {
|
body: {
|
||||||
token: admin.getJwtToken(),
|
|
||||||
id: template.id,
|
id: template.id,
|
||||||
collectionId: targetCollection.id,
|
collectionId: targetCollection.id,
|
||||||
},
|
},
|
||||||
@@ -199,9 +189,8 @@ describe("#templates.update", () => {
|
|||||||
permission: null,
|
permission: null,
|
||||||
});
|
});
|
||||||
|
|
||||||
const res = await server.post("/api/templates.update", {
|
const res = await server.post("/api/templates.update", user, {
|
||||||
body: {
|
body: {
|
||||||
token: user.getJwtToken(),
|
|
||||||
id: template.id,
|
id: template.id,
|
||||||
collectionId: inaccessibleCollection.id,
|
collectionId: inaccessibleCollection.id,
|
||||||
},
|
},
|
||||||
@@ -222,9 +211,8 @@ describe("#templates.update", () => {
|
|||||||
// but is not a team admin
|
// but is not a team admin
|
||||||
const user = await buildUser({ teamId: admin.teamId });
|
const user = await buildUser({ teamId: admin.teamId });
|
||||||
|
|
||||||
const res = await server.post("/api/templates.update", {
|
const res = await server.post("/api/templates.update", user, {
|
||||||
body: {
|
body: {
|
||||||
token: user.getJwtToken(),
|
|
||||||
id: template.id,
|
id: template.id,
|
||||||
collectionId: null,
|
collectionId: null,
|
||||||
},
|
},
|
||||||
@@ -240,9 +228,8 @@ describe("#templates.update", () => {
|
|||||||
teamId: admin.teamId,
|
teamId: admin.teamId,
|
||||||
});
|
});
|
||||||
|
|
||||||
const res = await server.post("/api/templates.update", {
|
const res = await server.post("/api/templates.update", admin, {
|
||||||
body: {
|
body: {
|
||||||
token: admin.getJwtToken(),
|
|
||||||
id: template.id,
|
id: template.id,
|
||||||
collectionId: null,
|
collectionId: null,
|
||||||
},
|
},
|
||||||
@@ -255,9 +242,8 @@ describe("#templates.update", () => {
|
|||||||
|
|
||||||
it("should fail with status 400 bad request when id is missing", async () => {
|
it("should fail with status 400 bad request when id is missing", async () => {
|
||||||
const user = await buildUser();
|
const user = await buildUser();
|
||||||
const res = await server.post("/api/templates.update", {
|
const res = await server.post("/api/templates.update", user, {
|
||||||
body: {
|
body: {
|
||||||
token: user.getJwtToken(),
|
|
||||||
title: "New title",
|
title: "New title",
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
@@ -281,9 +267,8 @@ describe("#templates.duplicate", () => {
|
|||||||
title: "test",
|
title: "test",
|
||||||
});
|
});
|
||||||
|
|
||||||
const res = await server.post("/api/templates.duplicate", {
|
const res = await server.post("/api/templates.duplicate", user, {
|
||||||
body: {
|
body: {
|
||||||
token: user.getJwtToken(),
|
|
||||||
id: template.id,
|
id: template.id,
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
@@ -302,9 +287,8 @@ describe("#templates.duplicate", () => {
|
|||||||
teamId: user.teamId,
|
teamId: user.teamId,
|
||||||
});
|
});
|
||||||
|
|
||||||
const res = await server.post("/api/templates.duplicate", {
|
const res = await server.post("/api/templates.duplicate", user, {
|
||||||
body: {
|
body: {
|
||||||
token: user.getJwtToken(),
|
|
||||||
id: template.id,
|
id: template.id,
|
||||||
title: "New title",
|
title: "New title",
|
||||||
},
|
},
|
||||||
@@ -329,9 +313,8 @@ describe("#templates.duplicate", () => {
|
|||||||
teamId: admin.teamId,
|
teamId: admin.teamId,
|
||||||
});
|
});
|
||||||
|
|
||||||
const res = await server.post("/api/templates.duplicate", {
|
const res = await server.post("/api/templates.duplicate", admin, {
|
||||||
body: {
|
body: {
|
||||||
token: admin.getJwtToken(),
|
|
||||||
id: template.id,
|
id: template.id,
|
||||||
collectionId: targetCollection.id,
|
collectionId: targetCollection.id,
|
||||||
},
|
},
|
||||||
@@ -355,9 +338,8 @@ describe("#templates.duplicate", () => {
|
|||||||
permission: null,
|
permission: null,
|
||||||
});
|
});
|
||||||
|
|
||||||
const res = await server.post("/api/templates.duplicate", {
|
const res = await server.post("/api/templates.duplicate", user, {
|
||||||
body: {
|
body: {
|
||||||
token: user.getJwtToken(),
|
|
||||||
id: template.id,
|
id: template.id,
|
||||||
collectionId: inaccessibleCollection.id,
|
collectionId: inaccessibleCollection.id,
|
||||||
},
|
},
|
||||||
@@ -376,9 +358,8 @@ describe("#templates.duplicate", () => {
|
|||||||
// Non-admin member on the same team
|
// Non-admin member on the same team
|
||||||
const user = await buildUser({ teamId: admin.teamId });
|
const user = await buildUser({ teamId: admin.teamId });
|
||||||
|
|
||||||
const res = await server.post("/api/templates.duplicate", {
|
const res = await server.post("/api/templates.duplicate", user, {
|
||||||
body: {
|
body: {
|
||||||
token: user.getJwtToken(),
|
|
||||||
id: template.id,
|
id: template.id,
|
||||||
collectionId: null,
|
collectionId: null,
|
||||||
},
|
},
|
||||||
@@ -394,9 +375,8 @@ describe("#templates.duplicate", () => {
|
|||||||
teamId: admin.teamId,
|
teamId: admin.teamId,
|
||||||
});
|
});
|
||||||
|
|
||||||
const res = await server.post("/api/templates.duplicate", {
|
const res = await server.post("/api/templates.duplicate", admin, {
|
||||||
body: {
|
body: {
|
||||||
token: admin.getJwtToken(),
|
|
||||||
id: template.id,
|
id: template.id,
|
||||||
collectionId: null,
|
collectionId: null,
|
||||||
},
|
},
|
||||||
@@ -414,9 +394,8 @@ describe("#templates.duplicate", () => {
|
|||||||
teamId: user.teamId,
|
teamId: user.teamId,
|
||||||
});
|
});
|
||||||
|
|
||||||
const res = await server.post("/api/templates.duplicate", {
|
const res = await server.post("/api/templates.duplicate", user, {
|
||||||
body: {
|
body: {
|
||||||
token: user.getJwtToken(),
|
|
||||||
id: template.id,
|
id: template.id,
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
@@ -433,9 +412,8 @@ describe("#templates.duplicate", () => {
|
|||||||
|
|
||||||
it("should fail for invalid template id", async () => {
|
it("should fail for invalid template id", async () => {
|
||||||
const user = await buildUser();
|
const user = await buildUser();
|
||||||
const res = await server.post("/api/templates.duplicate", {
|
const res = await server.post("/api/templates.duplicate", user, {
|
||||||
body: {
|
body: {
|
||||||
token: user.getJwtToken(),
|
|
||||||
id: "invalid",
|
id: "invalid",
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
@@ -452,9 +430,8 @@ describe("#templates.delete", () => {
|
|||||||
teamId: user.teamId,
|
teamId: user.teamId,
|
||||||
});
|
});
|
||||||
|
|
||||||
const res = await server.post("/api/templates.delete", {
|
const res = await server.post("/api/templates.delete", user, {
|
||||||
body: {
|
body: {
|
||||||
token: user.getJwtToken(),
|
|
||||||
id: template.id,
|
id: template.id,
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
@@ -466,11 +443,7 @@ describe("#templates.delete", () => {
|
|||||||
|
|
||||||
it("should fail with status 400 bad request when id is missing", async () => {
|
it("should fail with status 400 bad request when id is missing", async () => {
|
||||||
const user = await buildUser();
|
const user = await buildUser();
|
||||||
const res = await server.post("/api/templates.delete", {
|
const res = await server.post("/api/templates.delete", user);
|
||||||
body: {
|
|
||||||
token: user.getJwtToken(),
|
|
||||||
},
|
|
||||||
});
|
|
||||||
const body = await res.json();
|
const body = await res.json();
|
||||||
expect(res.status).toEqual(400);
|
expect(res.status).toEqual(400);
|
||||||
expect(body.message).toEqual("id: Must be a valid UUID or slug");
|
expect(body.message).toEqual("id: Must be a valid UUID or slug");
|
||||||
@@ -494,9 +467,8 @@ describe("templateManagement", () => {
|
|||||||
|
|
||||||
const member = await buildUser({ teamId: admin.teamId });
|
const member = await buildUser({ teamId: admin.teamId });
|
||||||
|
|
||||||
const res = await server.post("/api/templates.create", {
|
const res = await server.post("/api/templates.create", member, {
|
||||||
body: {
|
body: {
|
||||||
token: member.getJwtToken(),
|
|
||||||
collectionId: collection.id,
|
collectionId: collection.id,
|
||||||
title: "Member template",
|
title: "Member template",
|
||||||
data: {
|
data: {
|
||||||
@@ -527,9 +499,8 @@ describe("templateManagement", () => {
|
|||||||
|
|
||||||
const member = await buildUser({ teamId: admin.teamId });
|
const member = await buildUser({ teamId: admin.teamId });
|
||||||
|
|
||||||
const res = await server.post("/api/templates.create", {
|
const res = await server.post("/api/templates.create", member, {
|
||||||
body: {
|
body: {
|
||||||
token: member.getJwtToken(),
|
|
||||||
collectionId: collection.id,
|
collectionId: collection.id,
|
||||||
title: "Member template",
|
title: "Member template",
|
||||||
data: {
|
data: {
|
||||||
@@ -564,9 +535,8 @@ describe("templateManagement", () => {
|
|||||||
permission: CollectionPermission.ReadWrite,
|
permission: CollectionPermission.ReadWrite,
|
||||||
});
|
});
|
||||||
|
|
||||||
const res = await server.post("/api/templates.create", {
|
const res = await server.post("/api/templates.create", member, {
|
||||||
body: {
|
body: {
|
||||||
token: member.getJwtToken(),
|
|
||||||
collectionId: collection.id,
|
collectionId: collection.id,
|
||||||
title: "Member template",
|
title: "Member template",
|
||||||
data: {
|
data: {
|
||||||
@@ -603,9 +573,8 @@ describe("templateManagement", () => {
|
|||||||
permission: CollectionPermission.Read,
|
permission: CollectionPermission.Read,
|
||||||
});
|
});
|
||||||
|
|
||||||
const res = await server.post("/api/templates.create", {
|
const res = await server.post("/api/templates.create", member, {
|
||||||
body: {
|
body: {
|
||||||
token: member.getJwtToken(),
|
|
||||||
collectionId: collection.id,
|
collectionId: collection.id,
|
||||||
title: "Member template",
|
title: "Member template",
|
||||||
data: {
|
data: {
|
||||||
@@ -640,9 +609,8 @@ describe("templateManagement", () => {
|
|||||||
collectionId: collection.id,
|
collectionId: collection.id,
|
||||||
});
|
});
|
||||||
|
|
||||||
const res = await server.post("/api/templates.update", {
|
const res = await server.post("/api/templates.update", member, {
|
||||||
body: {
|
body: {
|
||||||
token: member.getJwtToken(),
|
|
||||||
id: template.id,
|
id: template.id,
|
||||||
title: "Updated by member",
|
title: "Updated by member",
|
||||||
},
|
},
|
||||||
@@ -668,9 +636,8 @@ describe("templateManagement", () => {
|
|||||||
collectionId: collection.id,
|
collectionId: collection.id,
|
||||||
});
|
});
|
||||||
|
|
||||||
const res = await server.post("/api/templates.update", {
|
const res = await server.post("/api/templates.update", member, {
|
||||||
body: {
|
body: {
|
||||||
token: member.getJwtToken(),
|
|
||||||
id: template.id,
|
id: template.id,
|
||||||
title: "Updated by member",
|
title: "Updated by member",
|
||||||
},
|
},
|
||||||
@@ -696,9 +663,8 @@ describe("templateManagement", () => {
|
|||||||
collectionId: collection.id,
|
collectionId: collection.id,
|
||||||
});
|
});
|
||||||
|
|
||||||
const res = await server.post("/api/templates.duplicate", {
|
const res = await server.post("/api/templates.duplicate", member, {
|
||||||
body: {
|
body: {
|
||||||
token: member.getJwtToken(),
|
|
||||||
id: template.id,
|
id: template.id,
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
@@ -723,9 +689,8 @@ describe("templateManagement", () => {
|
|||||||
collectionId: collection.id,
|
collectionId: collection.id,
|
||||||
});
|
});
|
||||||
|
|
||||||
const res = await server.post("/api/templates.duplicate", {
|
const res = await server.post("/api/templates.duplicate", member, {
|
||||||
body: {
|
body: {
|
||||||
token: member.getJwtToken(),
|
|
||||||
id: template.id,
|
id: template.id,
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
@@ -751,9 +716,8 @@ describe("templateManagement", () => {
|
|||||||
});
|
});
|
||||||
await template.destroy();
|
await template.destroy();
|
||||||
|
|
||||||
const res = await server.post("/api/templates.restore", {
|
const res = await server.post("/api/templates.restore", member, {
|
||||||
body: {
|
body: {
|
||||||
token: member.getJwtToken(),
|
|
||||||
id: template.id,
|
id: template.id,
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
@@ -779,9 +743,8 @@ describe("templateManagement", () => {
|
|||||||
});
|
});
|
||||||
await template.destroy();
|
await template.destroy();
|
||||||
|
|
||||||
const res = await server.post("/api/templates.restore", {
|
const res = await server.post("/api/templates.restore", member, {
|
||||||
body: {
|
body: {
|
||||||
token: member.getJwtToken(),
|
|
||||||
id: template.id,
|
id: template.id,
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
@@ -806,9 +769,8 @@ describe("templateManagement", () => {
|
|||||||
collectionId: collection.id,
|
collectionId: collection.id,
|
||||||
});
|
});
|
||||||
|
|
||||||
const res = await server.post("/api/templates.delete", {
|
const res = await server.post("/api/templates.delete", member, {
|
||||||
body: {
|
body: {
|
||||||
token: member.getJwtToken(),
|
|
||||||
id: template.id,
|
id: template.id,
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
@@ -833,9 +795,8 @@ describe("templateManagement", () => {
|
|||||||
collectionId: collection.id,
|
collectionId: collection.id,
|
||||||
});
|
});
|
||||||
|
|
||||||
const res = await server.post("/api/templates.delete", {
|
const res = await server.post("/api/templates.delete", member, {
|
||||||
body: {
|
body: {
|
||||||
token: member.getJwtToken(),
|
|
||||||
id: template.id,
|
id: template.id,
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
|
|||||||
@@ -53,9 +53,8 @@ describe("#urls.unfurl", () => {
|
|||||||
});
|
});
|
||||||
|
|
||||||
it("should fail with status 400 bad request when url is invalid", async () => {
|
it("should fail with status 400 bad request when url is invalid", async () => {
|
||||||
const res = await server.post("/api/urls.unfurl", {
|
const res = await server.post("/api/urls.unfurl", user, {
|
||||||
body: {
|
body: {
|
||||||
token: user.getJwtToken(),
|
|
||||||
url: "/doc/foo-bar",
|
url: "/doc/foo-bar",
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
@@ -66,9 +65,8 @@ describe("#urls.unfurl", () => {
|
|||||||
});
|
});
|
||||||
|
|
||||||
it("should fail with status 400 bad request when mention url is invalid", async () => {
|
it("should fail with status 400 bad request when mention url is invalid", async () => {
|
||||||
const res = await server.post("/api/urls.unfurl", {
|
const res = await server.post("/api/urls.unfurl", user, {
|
||||||
body: {
|
body: {
|
||||||
token: user.getJwtToken(),
|
|
||||||
url: "mention://1/foo/1",
|
url: "mention://1/foo/1",
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
@@ -79,9 +77,8 @@ describe("#urls.unfurl", () => {
|
|||||||
});
|
});
|
||||||
|
|
||||||
it("should fail with status 400 bad request when mention url is supplied without documentId", async () => {
|
it("should fail with status 400 bad request when mention url is supplied without documentId", async () => {
|
||||||
const res = await server.post("/api/urls.unfurl", {
|
const res = await server.post("/api/urls.unfurl", user, {
|
||||||
body: {
|
body: {
|
||||||
token: user.getJwtToken(),
|
|
||||||
url: "mention://2767ba0e-ac5c-4533-b9cf-4f5fc456600e/user/34095ac1-c808-45c0-8c6e-6c554497de64",
|
url: "mention://2767ba0e-ac5c-4533-b9cf-4f5fc456600e/user/34095ac1-c808-45c0-8c6e-6c554497de64",
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
@@ -92,9 +89,8 @@ describe("#urls.unfurl", () => {
|
|||||||
});
|
});
|
||||||
|
|
||||||
it("should fail with status 404 not found when mention user does not exist", async () => {
|
it("should fail with status 404 not found when mention user does not exist", async () => {
|
||||||
const res = await server.post("/api/urls.unfurl", {
|
const res = await server.post("/api/urls.unfurl", user, {
|
||||||
body: {
|
body: {
|
||||||
token: user.getJwtToken(),
|
|
||||||
url: "mention://2767ba0e-ac5c-4533-b9cf-4f5fc456600e/user/34095ac1-c808-45c0-8c6e-6c554497de64",
|
url: "mention://2767ba0e-ac5c-4533-b9cf-4f5fc456600e/user/34095ac1-c808-45c0-8c6e-6c554497de64",
|
||||||
documentId: "2767ba0e-ac5c-4533-b9cf-4f5fc456600e",
|
documentId: "2767ba0e-ac5c-4533-b9cf-4f5fc456600e",
|
||||||
},
|
},
|
||||||
@@ -110,9 +106,8 @@ describe("#urls.unfurl", () => {
|
|||||||
teamId: user.teamId,
|
teamId: user.teamId,
|
||||||
});
|
});
|
||||||
|
|
||||||
const res = await server.post("/api/urls.unfurl", {
|
const res = await server.post("/api/urls.unfurl", user, {
|
||||||
body: {
|
body: {
|
||||||
token: user.getJwtToken(),
|
|
||||||
url: `mention://2767ba0e-ac5c-4533-b9cf-4f5fc456600e/user/${mentionedUser.id}`,
|
url: `mention://2767ba0e-ac5c-4533-b9cf-4f5fc456600e/user/${mentionedUser.id}`,
|
||||||
documentId: "2767ba0e-ac5c-4533-b9cf-4f5fc456600e",
|
documentId: "2767ba0e-ac5c-4533-b9cf-4f5fc456600e",
|
||||||
},
|
},
|
||||||
@@ -129,9 +124,8 @@ describe("#urls.unfurl", () => {
|
|||||||
teamId: user.teamId,
|
teamId: user.teamId,
|
||||||
});
|
});
|
||||||
|
|
||||||
const res = await server.post("/api/urls.unfurl", {
|
const res = await server.post("/api/urls.unfurl", user, {
|
||||||
body: {
|
body: {
|
||||||
token: user.getJwtToken(),
|
|
||||||
url: `mention://2767ba0e-ac5c-4533-b9cf-4f5fc456600e/user/${mentionedUser.id}`,
|
url: `mention://2767ba0e-ac5c-4533-b9cf-4f5fc456600e/user/${mentionedUser.id}`,
|
||||||
documentId: document.id,
|
documentId: document.id,
|
||||||
},
|
},
|
||||||
@@ -147,9 +141,8 @@ describe("#urls.unfurl", () => {
|
|||||||
teamId: user.teamId,
|
teamId: user.teamId,
|
||||||
});
|
});
|
||||||
|
|
||||||
const res = await server.post("/api/urls.unfurl", {
|
const res = await server.post("/api/urls.unfurl", user, {
|
||||||
body: {
|
body: {
|
||||||
token: user.getJwtToken(),
|
|
||||||
url: `mention://2767ba0e-ac5c-4533-b9cf-4f5fc456600e/user/${mentionedUser.id}`,
|
url: `mention://2767ba0e-ac5c-4533-b9cf-4f5fc456600e/user/${mentionedUser.id}`,
|
||||||
documentId: document.id,
|
documentId: document.id,
|
||||||
},
|
},
|
||||||
@@ -161,9 +154,8 @@ describe("#urls.unfurl", () => {
|
|||||||
});
|
});
|
||||||
|
|
||||||
it("should return 204 when internal document url points to non-existent document", async () => {
|
it("should return 204 when internal document url points to non-existent document", async () => {
|
||||||
const res = await server.post("/api/urls.unfurl", {
|
const res = await server.post("/api/urls.unfurl", user, {
|
||||||
body: {
|
body: {
|
||||||
token: user.getJwtToken(),
|
|
||||||
url: `${env.URL}/doc/non-existent-doc-abc123`,
|
url: `${env.URL}/doc/non-existent-doc-abc123`,
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
@@ -175,9 +167,8 @@ describe("#urls.unfurl", () => {
|
|||||||
teamId: user.teamId,
|
teamId: user.teamId,
|
||||||
});
|
});
|
||||||
|
|
||||||
const res = await server.post("/api/urls.unfurl", {
|
const res = await server.post("/api/urls.unfurl", user, {
|
||||||
body: {
|
body: {
|
||||||
token: user.getJwtToken(),
|
|
||||||
url: `${env.URL}/${document.url}`,
|
url: `${env.URL}/${document.url}`,
|
||||||
documentId: document.id,
|
documentId: document.id,
|
||||||
},
|
},
|
||||||
@@ -200,9 +191,8 @@ describe("#urls.unfurl", () => {
|
|||||||
published: true,
|
published: true,
|
||||||
});
|
});
|
||||||
|
|
||||||
const res = await server.post("/api/urls.unfurl", {
|
const res = await server.post("/api/urls.unfurl", user, {
|
||||||
body: {
|
body: {
|
||||||
token: user.getJwtToken(),
|
|
||||||
url: `${env.URL}/s/${share.id}/doc/${document.urlId}`,
|
url: `${env.URL}/s/${share.id}/doc/${document.urlId}`,
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
@@ -225,9 +215,8 @@ describe("#urls.unfurl", () => {
|
|||||||
published: true,
|
published: true,
|
||||||
});
|
});
|
||||||
|
|
||||||
const res = await server.post("/api/urls.unfurl", {
|
const res = await server.post("/api/urls.unfurl", user, {
|
||||||
body: {
|
body: {
|
||||||
token: user.getJwtToken(),
|
|
||||||
url: `${env.URL}/s/${share.urlId}/doc/${document.urlId}`,
|
url: `${env.URL}/s/${share.urlId}/doc/${document.urlId}`,
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
@@ -272,9 +261,8 @@ describe("#urls.unfurl", () => {
|
|||||||
published: true,
|
published: true,
|
||||||
});
|
});
|
||||||
|
|
||||||
const res = await server.post("/api/urls.unfurl", {
|
const res = await server.post("/api/urls.unfurl", user, {
|
||||||
body: {
|
body: {
|
||||||
token: user.getJwtToken(),
|
|
||||||
url: `${env.URL}/s/${share.id}/doc/${document.urlId}`,
|
url: `${env.URL}/s/${share.id}/doc/${document.urlId}`,
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
@@ -294,9 +282,8 @@ describe("#urls.unfurl", () => {
|
|||||||
published: true,
|
published: true,
|
||||||
});
|
});
|
||||||
|
|
||||||
const res = await server.post("/api/urls.unfurl", {
|
const res = await server.post("/api/urls.unfurl", user, {
|
||||||
body: {
|
body: {
|
||||||
token: user.getJwtToken(),
|
|
||||||
url: `${env.URL}/s/${share.id}`,
|
url: `${env.URL}/s/${share.id}`,
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
@@ -337,9 +324,8 @@ describe("#urls.unfurl", () => {
|
|||||||
})
|
})
|
||||||
);
|
);
|
||||||
|
|
||||||
const res = await server.post("/api/urls.unfurl", {
|
const res = await server.post("/api/urls.unfurl", user, {
|
||||||
body: {
|
body: {
|
||||||
token: user.getJwtToken(),
|
|
||||||
url: "https://www.flickr.com",
|
url: "https://www.flickr.com",
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
@@ -368,9 +354,8 @@ describe("#urls.unfurl", () => {
|
|||||||
})
|
})
|
||||||
);
|
);
|
||||||
|
|
||||||
const res = await server.post("/api/urls.unfurl", {
|
const res = await server.post("/api/urls.unfurl", user, {
|
||||||
body: {
|
body: {
|
||||||
token: user.getJwtToken(),
|
|
||||||
url: "https://random.url",
|
url: "https://random.url",
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
@@ -386,19 +371,14 @@ describe("#urls.checkEmbed", () => {
|
|||||||
});
|
});
|
||||||
|
|
||||||
it("should fail with status 400 bad request when url is missing", async () => {
|
it("should fail with status 400 bad request when url is missing", async () => {
|
||||||
const res = await server.post("/api/urls.checkEmbed", {
|
const res = await server.post("/api/urls.checkEmbed", user);
|
||||||
body: {
|
|
||||||
token: user.getJwtToken(),
|
|
||||||
},
|
|
||||||
});
|
|
||||||
|
|
||||||
expect(res.status).toEqual(400);
|
expect(res.status).toEqual(400);
|
||||||
});
|
});
|
||||||
|
|
||||||
it("should fail with status 400 bad request when url is not a valid URL", async () => {
|
it("should fail with status 400 bad request when url is not a valid URL", async () => {
|
||||||
const res = await server.post("/api/urls.checkEmbed", {
|
const res = await server.post("/api/urls.checkEmbed", user, {
|
||||||
body: {
|
body: {
|
||||||
token: user.getJwtToken(),
|
|
||||||
url: "not-a-url",
|
url: "not-a-url",
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
@@ -408,9 +388,8 @@ describe("#urls.checkEmbed", () => {
|
|||||||
|
|
||||||
it("should return a result for valid URLs", async () => {
|
it("should return a result for valid URLs", async () => {
|
||||||
// Use a YouTube URL which matches a known embed pattern
|
// Use a YouTube URL which matches a known embed pattern
|
||||||
const res = await server.post("/api/urls.checkEmbed", {
|
const res = await server.post("/api/urls.checkEmbed", user, {
|
||||||
body: {
|
body: {
|
||||||
token: user.getJwtToken(),
|
|
||||||
url: "https://www.youtube.com/watch?v=dQw4w9WgXcQ",
|
url: "https://www.youtube.com/watch?v=dQw4w9WgXcQ",
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
@@ -425,9 +404,8 @@ describe("#urls.checkEmbed", () => {
|
|||||||
describe("#urls.validateCustomDomain", () => {
|
describe("#urls.validateCustomDomain", () => {
|
||||||
it("should succeed with custom domain pointing at server", async () => {
|
it("should succeed with custom domain pointing at server", async () => {
|
||||||
const user = await buildUser();
|
const user = await buildUser();
|
||||||
const res = await server.post("/api/urls.validateCustomDomain", {
|
const res = await server.post("/api/urls.validateCustomDomain", user, {
|
||||||
body: {
|
body: {
|
||||||
token: user.getJwtToken(),
|
|
||||||
hostname: "valid.custom.domain",
|
hostname: "valid.custom.domain",
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
@@ -436,9 +414,8 @@ describe("#urls.validateCustomDomain", () => {
|
|||||||
|
|
||||||
it("should fail with another domain", async () => {
|
it("should fail with another domain", async () => {
|
||||||
const user = await buildUser();
|
const user = await buildUser();
|
||||||
const res = await server.post("/api/urls.validateCustomDomain", {
|
const res = await server.post("/api/urls.validateCustomDomain", user, {
|
||||||
body: {
|
body: {
|
||||||
token: user.getJwtToken(),
|
|
||||||
hostname: "google.com",
|
hostname: "google.com",
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
|
|||||||
@@ -30,20 +30,15 @@ describe("#userMemberships.list", () => {
|
|||||||
const member = await buildUser({
|
const member = await buildUser({
|
||||||
teamId: user.teamId,
|
teamId: user.teamId,
|
||||||
});
|
});
|
||||||
await server.post("/api/documents.add_user", {
|
await server.post("/api/documents.add_user", user, {
|
||||||
body: {
|
body: {
|
||||||
token: user.getJwtToken(),
|
|
||||||
id: document.id,
|
id: document.id,
|
||||||
userId: member.id,
|
userId: member.id,
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
const users = await document.$get("users");
|
const users = await document.$get("users");
|
||||||
expect(users.length).toEqual(1);
|
expect(users.length).toEqual(1);
|
||||||
const res = await server.post("/api/userMemberships.list", {
|
const res = await server.post("/api/userMemberships.list", member);
|
||||||
body: {
|
|
||||||
token: member.getJwtToken(),
|
|
||||||
},
|
|
||||||
});
|
|
||||||
const body = await res.json();
|
const body = await res.json();
|
||||||
expect(res.status).toEqual(200);
|
expect(res.status).toEqual(200);
|
||||||
expect(body.data).not.toBeFalsy();
|
expect(body.data).not.toBeFalsy();
|
||||||
@@ -79,9 +74,8 @@ describe("#userMemberships.update", () => {
|
|||||||
const member = await buildUser({
|
const member = await buildUser({
|
||||||
teamId: user.teamId,
|
teamId: user.teamId,
|
||||||
});
|
});
|
||||||
const resp = await server.post("/api/documents.add_user", {
|
const resp = await server.post("/api/documents.add_user", user, {
|
||||||
body: {
|
body: {
|
||||||
token: user.getJwtToken(),
|
|
||||||
id: document.id,
|
id: document.id,
|
||||||
userId: member.id,
|
userId: member.id,
|
||||||
},
|
},
|
||||||
@@ -93,9 +87,8 @@ describe("#userMemberships.update", () => {
|
|||||||
|
|
||||||
const users = await document.$get("users");
|
const users = await document.$get("users");
|
||||||
expect(users.length).toEqual(1);
|
expect(users.length).toEqual(1);
|
||||||
const res = await server.post("/api/userMemberships.update", {
|
const res = await server.post("/api/userMemberships.update", member, {
|
||||||
body: {
|
body: {
|
||||||
token: member.getJwtToken(),
|
|
||||||
id: respBody.data.memberships[0].id,
|
id: respBody.data.memberships[0].id,
|
||||||
index: "V",
|
index: "V",
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -27,10 +27,9 @@ describe("#users.list", () => {
|
|||||||
email: "john.doe@example.com",
|
email: "john.doe@example.com",
|
||||||
});
|
});
|
||||||
|
|
||||||
const res = await server.post("/api/users.list", {
|
const res = await server.post("/api/users.list", user, {
|
||||||
body: {
|
body: {
|
||||||
query: "john.doe@e",
|
query: "john.doe@e",
|
||||||
token: user.getJwtToken(),
|
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
const body = await res.json();
|
const body = await res.json();
|
||||||
@@ -49,10 +48,9 @@ describe("#users.list", () => {
|
|||||||
teamId: user.teamId,
|
teamId: user.teamId,
|
||||||
suspendedAt: new Date(),
|
suspendedAt: new Date(),
|
||||||
});
|
});
|
||||||
const res = await server.post("/api/users.list", {
|
const res = await server.post("/api/users.list", user, {
|
||||||
body: {
|
body: {
|
||||||
query: "test",
|
query: "test",
|
||||||
token: user.getJwtToken(),
|
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
const body = await res.json();
|
const body = await res.json();
|
||||||
@@ -69,10 +67,9 @@ describe("#users.list", () => {
|
|||||||
name: "Admin",
|
name: "Admin",
|
||||||
teamId: user.teamId,
|
teamId: user.teamId,
|
||||||
});
|
});
|
||||||
const res = await server.post("/api/users.list", {
|
const res = await server.post("/api/users.list", user, {
|
||||||
body: {
|
body: {
|
||||||
role: UserRole.Admin,
|
role: UserRole.Admin,
|
||||||
token: user.getJwtToken(),
|
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
const body = await res.json();
|
const body = await res.json();
|
||||||
@@ -88,11 +85,10 @@ describe("#users.list", () => {
|
|||||||
teamId: admin.teamId,
|
teamId: admin.teamId,
|
||||||
suspendedAt: new Date(),
|
suspendedAt: new Date(),
|
||||||
});
|
});
|
||||||
const res = await server.post("/api/users.list", {
|
const res = await server.post("/api/users.list", admin, {
|
||||||
body: {
|
body: {
|
||||||
query: "test",
|
query: "test",
|
||||||
filter: "suspended",
|
filter: "suspended",
|
||||||
token: admin.getJwtToken(),
|
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
const body = await res.json();
|
const body = await res.json();
|
||||||
@@ -107,10 +103,9 @@ describe("#users.list", () => {
|
|||||||
teamId: user.teamId,
|
teamId: user.teamId,
|
||||||
suspendedAt: new Date(),
|
suspendedAt: new Date(),
|
||||||
});
|
});
|
||||||
const res = await server.post("/api/users.list", {
|
const res = await server.post("/api/users.list", user, {
|
||||||
body: {
|
body: {
|
||||||
query: "test",
|
query: "test",
|
||||||
token: user.getJwtToken(),
|
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
const body = await res.json();
|
const body = await res.json();
|
||||||
@@ -126,11 +121,10 @@ describe("#users.list", () => {
|
|||||||
name: "Tester",
|
name: "Tester",
|
||||||
teamId: user.teamId,
|
teamId: user.teamId,
|
||||||
});
|
});
|
||||||
const res = await server.post("/api/users.list", {
|
const res = await server.post("/api/users.list", user, {
|
||||||
body: {
|
body: {
|
||||||
query: "test",
|
query: "test",
|
||||||
filter: "active",
|
filter: "active",
|
||||||
token: user.getJwtToken(),
|
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
const body = await res.json();
|
const body = await res.json();
|
||||||
@@ -147,11 +141,10 @@ describe("#users.list", () => {
|
|||||||
teamId: user.teamId,
|
teamId: user.teamId,
|
||||||
lastActiveAt: null,
|
lastActiveAt: null,
|
||||||
});
|
});
|
||||||
const res = await server.post("/api/users.list", {
|
const res = await server.post("/api/users.list", user, {
|
||||||
body: {
|
body: {
|
||||||
query: "test",
|
query: "test",
|
||||||
filter: "invited",
|
filter: "invited",
|
||||||
token: user.getJwtToken(),
|
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
const body = await res.json();
|
const body = await res.json();
|
||||||
@@ -164,9 +157,8 @@ describe("#users.list", () => {
|
|||||||
const admin = await buildAdmin({ teamId: team.id });
|
const admin = await buildAdmin({ teamId: team.id });
|
||||||
await buildUser({ teamId: team.id });
|
await buildUser({ teamId: team.id });
|
||||||
|
|
||||||
const res = await server.post("/api/users.list", {
|
const res = await server.post("/api/users.list", admin, {
|
||||||
body: {
|
body: {
|
||||||
token: admin.getJwtToken(),
|
|
||||||
sort: "createdAt",
|
sort: "createdAt",
|
||||||
direction: "DESC",
|
direction: "DESC",
|
||||||
},
|
},
|
||||||
@@ -181,9 +173,8 @@ describe("#users.list", () => {
|
|||||||
const admin = await buildAdmin({ teamId: team.id });
|
const admin = await buildAdmin({ teamId: team.id });
|
||||||
const user = await buildUser({ teamId: team.id });
|
const user = await buildUser({ teamId: team.id });
|
||||||
|
|
||||||
const res = await server.post("/api/users.list", {
|
const res = await server.post("/api/users.list", admin, {
|
||||||
body: {
|
body: {
|
||||||
token: admin.getJwtToken(),
|
|
||||||
ids: [user.id],
|
ids: [user.id],
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
@@ -198,9 +189,8 @@ describe("#users.list", () => {
|
|||||||
const admin = await buildAdmin({ teamId: team.id });
|
const admin = await buildAdmin({ teamId: team.id });
|
||||||
const user = await buildUser({ teamId: team.id });
|
const user = await buildUser({ teamId: team.id });
|
||||||
|
|
||||||
const res = await server.post("/api/users.list", {
|
const res = await server.post("/api/users.list", admin, {
|
||||||
body: {
|
body: {
|
||||||
token: admin.getJwtToken(),
|
|
||||||
emails: [user.email],
|
emails: [user.email],
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
@@ -216,9 +206,8 @@ describe("#users.list", () => {
|
|||||||
const user = await buildUser({ teamId: team.id });
|
const user = await buildUser({ teamId: team.id });
|
||||||
|
|
||||||
// Test with uppercase email
|
// Test with uppercase email
|
||||||
const res = await server.post("/api/users.list", {
|
const res = await server.post("/api/users.list", admin, {
|
||||||
body: {
|
body: {
|
||||||
token: admin.getJwtToken(),
|
|
||||||
emails: [user.email!.toUpperCase()],
|
emails: [user.email!.toUpperCase()],
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
@@ -235,9 +224,8 @@ describe("#users.list", () => {
|
|||||||
)
|
)
|
||||||
.join("@");
|
.join("@");
|
||||||
|
|
||||||
const res2 = await server.post("/api/users.list", {
|
const res2 = await server.post("/api/users.list", admin, {
|
||||||
body: {
|
body: {
|
||||||
token: admin.getJwtToken(),
|
|
||||||
emails: [mixedCaseEmail],
|
emails: [mixedCaseEmail],
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
@@ -251,11 +239,7 @@ describe("#users.list", () => {
|
|||||||
const team = await buildTeam();
|
const team = await buildTeam();
|
||||||
await buildUser({ teamId: team.id });
|
await buildUser({ teamId: team.id });
|
||||||
const guest = await buildUser({ teamId: team.id, role: UserRole.Guest });
|
const guest = await buildUser({ teamId: team.id, role: UserRole.Guest });
|
||||||
const res = await server.post("/api/users.list", {
|
const res = await server.post("/api/users.list", guest);
|
||||||
body: {
|
|
||||||
token: guest.getJwtToken(),
|
|
||||||
},
|
|
||||||
});
|
|
||||||
const body = await res.json();
|
const body = await res.json();
|
||||||
expect(res.status).toEqual(200);
|
expect(res.status).toEqual(200);
|
||||||
expect(body.data).toHaveLength(2);
|
expect(body.data).toHaveLength(2);
|
||||||
@@ -267,11 +251,7 @@ describe("#users.list", () => {
|
|||||||
const team = await buildTeam();
|
const team = await buildTeam();
|
||||||
await buildUser({ teamId: team.id });
|
await buildUser({ teamId: team.id });
|
||||||
const viewer = await buildUser({ teamId: team.id, role: UserRole.Viewer });
|
const viewer = await buildUser({ teamId: team.id, role: UserRole.Viewer });
|
||||||
const res = await server.post("/api/users.list", {
|
const res = await server.post("/api/users.list", viewer);
|
||||||
body: {
|
|
||||||
token: viewer.getJwtToken(),
|
|
||||||
},
|
|
||||||
});
|
|
||||||
const body = await res.json();
|
const body = await res.json();
|
||||||
expect(res.status).toEqual(200);
|
expect(res.status).toEqual(200);
|
||||||
expect(body.data).toHaveLength(2);
|
expect(body.data).toHaveLength(2);
|
||||||
@@ -283,11 +263,7 @@ describe("#users.list", () => {
|
|||||||
const team = await buildTeam();
|
const team = await buildTeam();
|
||||||
const user = await buildUser({ teamId: team.id });
|
const user = await buildUser({ teamId: team.id });
|
||||||
const member = await buildUser({ teamId: team.id, role: UserRole.Member });
|
const member = await buildUser({ teamId: team.id, role: UserRole.Member });
|
||||||
const res = await server.post("/api/users.list", {
|
const res = await server.post("/api/users.list", member);
|
||||||
body: {
|
|
||||||
token: member.getJwtToken(),
|
|
||||||
},
|
|
||||||
});
|
|
||||||
const body = await res.json();
|
const body = await res.json();
|
||||||
expect(res.status).toEqual(200);
|
expect(res.status).toEqual(200);
|
||||||
expect(body.data).toHaveLength(2);
|
expect(body.data).toHaveLength(2);
|
||||||
@@ -299,11 +275,7 @@ describe("#users.list", () => {
|
|||||||
const team = await buildTeam();
|
const team = await buildTeam();
|
||||||
await buildUser({ teamId: team.id });
|
await buildUser({ teamId: team.id });
|
||||||
const guest = await buildUser({ teamId: team.id, role: UserRole.Guest });
|
const guest = await buildUser({ teamId: team.id, role: UserRole.Guest });
|
||||||
const res = await server.post("/api/users.list", {
|
const res = await server.post("/api/users.list", guest);
|
||||||
body: {
|
|
||||||
token: guest.getJwtToken(),
|
|
||||||
},
|
|
||||||
});
|
|
||||||
const body = await res.json();
|
const body = await res.json();
|
||||||
expect(res.status).toEqual(200);
|
expect(res.status).toEqual(200);
|
||||||
expect(body.data).toHaveLength(2);
|
expect(body.data).toHaveLength(2);
|
||||||
@@ -321,11 +293,7 @@ describe("#users.list", () => {
|
|||||||
const team = await buildTeam();
|
const team = await buildTeam();
|
||||||
await buildUser({ teamId: team.id });
|
await buildUser({ teamId: team.id });
|
||||||
const viewer = await buildUser({ teamId: team.id, role: UserRole.Viewer });
|
const viewer = await buildUser({ teamId: team.id, role: UserRole.Viewer });
|
||||||
const res = await server.post("/api/users.list", {
|
const res = await server.post("/api/users.list", viewer);
|
||||||
body: {
|
|
||||||
token: viewer.getJwtToken(),
|
|
||||||
},
|
|
||||||
});
|
|
||||||
const body = await res.json();
|
const body = await res.json();
|
||||||
expect(res.status).toEqual(200);
|
expect(res.status).toEqual(200);
|
||||||
expect(body.data).toHaveLength(2);
|
expect(body.data).toHaveLength(2);
|
||||||
@@ -343,11 +311,7 @@ describe("#users.list", () => {
|
|||||||
const team = await buildTeam();
|
const team = await buildTeam();
|
||||||
await buildUser({ teamId: team.id });
|
await buildUser({ teamId: team.id });
|
||||||
const member = await buildUser({ teamId: team.id, role: UserRole.Member });
|
const member = await buildUser({ teamId: team.id, role: UserRole.Member });
|
||||||
const res = await server.post("/api/users.list", {
|
const res = await server.post("/api/users.list", member);
|
||||||
body: {
|
|
||||||
token: member.getJwtToken(),
|
|
||||||
},
|
|
||||||
});
|
|
||||||
const body = await res.json();
|
const body = await res.json();
|
||||||
expect(res.status).toEqual(200);
|
expect(res.status).toEqual(200);
|
||||||
expect(body.data).toHaveLength(2);
|
expect(body.data).toHaveLength(2);
|
||||||
@@ -365,11 +329,7 @@ describe("#users.list", () => {
|
|||||||
const team = await buildTeam();
|
const team = await buildTeam();
|
||||||
const admin = await buildAdmin({ teamId: team.id });
|
const admin = await buildAdmin({ teamId: team.id });
|
||||||
const user = await buildUser({ teamId: team.id });
|
const user = await buildUser({ teamId: team.id });
|
||||||
const res = await server.post("/api/users.list", {
|
const res = await server.post("/api/users.list", admin);
|
||||||
body: {
|
|
||||||
token: admin.getJwtToken(),
|
|
||||||
},
|
|
||||||
});
|
|
||||||
const body = await res.json();
|
const body = await res.json();
|
||||||
expect(res.status).toEqual(200);
|
expect(res.status).toEqual(200);
|
||||||
expect(body.data).toHaveLength(2);
|
expect(body.data).toHaveLength(2);
|
||||||
@@ -389,11 +349,7 @@ describe("#users.list", () => {
|
|||||||
describe("#users.info", () => {
|
describe("#users.info", () => {
|
||||||
it("should return current user with no id", async () => {
|
it("should return current user with no id", async () => {
|
||||||
const user = await buildUser();
|
const user = await buildUser();
|
||||||
const res = await server.post("/api/users.info", {
|
const res = await server.post("/api/users.info", user);
|
||||||
body: {
|
|
||||||
token: user.getJwtToken(),
|
|
||||||
},
|
|
||||||
});
|
|
||||||
const body = await res.json();
|
const body = await res.json();
|
||||||
expect(res.status).toEqual(200);
|
expect(res.status).toEqual(200);
|
||||||
expect(body.data.id).toEqual(user.id);
|
expect(body.data.id).toEqual(user.id);
|
||||||
@@ -406,9 +362,8 @@ describe("#users.info", () => {
|
|||||||
const another = await buildUser({
|
const another = await buildUser({
|
||||||
teamId: user.teamId,
|
teamId: user.teamId,
|
||||||
});
|
});
|
||||||
const res = await server.post("/api/users.info", {
|
const res = await server.post("/api/users.info", user, {
|
||||||
body: {
|
body: {
|
||||||
token: user.getJwtToken(),
|
|
||||||
id: another.id,
|
id: another.id,
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
@@ -423,9 +378,8 @@ describe("#users.info", () => {
|
|||||||
it("should now return user without permission", async () => {
|
it("should now return user without permission", async () => {
|
||||||
const user = await buildUser();
|
const user = await buildUser();
|
||||||
const another = await buildUser();
|
const another = await buildUser();
|
||||||
const res = await server.post("/api/users.info", {
|
const res = await server.post("/api/users.info", user, {
|
||||||
body: {
|
body: {
|
||||||
token: user.getJwtToken(),
|
|
||||||
id: another.id,
|
id: another.id,
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
@@ -441,9 +395,8 @@ describe("#users.info", () => {
|
|||||||
describe("#users.invite", () => {
|
describe("#users.invite", () => {
|
||||||
it("should return sent invites", async () => {
|
it("should return sent invites", async () => {
|
||||||
const user = await buildAdmin();
|
const user = await buildAdmin();
|
||||||
const res = await server.post("/api/users.invite", {
|
const res = await server.post("/api/users.invite", user, {
|
||||||
body: {
|
body: {
|
||||||
token: user.getJwtToken(),
|
|
||||||
invites: [
|
invites: [
|
||||||
{
|
{
|
||||||
email: "test@example.com",
|
email: "test@example.com",
|
||||||
@@ -460,9 +413,8 @@ describe("#users.invite", () => {
|
|||||||
|
|
||||||
it("should require invites to be an array", async () => {
|
it("should require invites to be an array", async () => {
|
||||||
const admin = await buildAdmin();
|
const admin = await buildAdmin();
|
||||||
const res = await server.post("/api/users.invite", {
|
const res = await server.post("/api/users.invite", admin, {
|
||||||
body: {
|
body: {
|
||||||
token: admin.getJwtToken(),
|
|
||||||
invites: {
|
invites: {
|
||||||
email: "test@example.com",
|
email: "test@example.com",
|
||||||
name: "Test",
|
name: "Test",
|
||||||
@@ -475,9 +427,8 @@ describe("#users.invite", () => {
|
|||||||
|
|
||||||
it("should allow members to invite members", async () => {
|
it("should allow members to invite members", async () => {
|
||||||
const user = await buildUser();
|
const user = await buildUser();
|
||||||
const res = await server.post("/api/users.invite", {
|
const res = await server.post("/api/users.invite", user, {
|
||||||
body: {
|
body: {
|
||||||
token: user.getJwtToken(),
|
|
||||||
invites: [
|
invites: [
|
||||||
{
|
{
|
||||||
email: "test@example.com",
|
email: "test@example.com",
|
||||||
@@ -494,9 +445,8 @@ describe("#users.invite", () => {
|
|||||||
|
|
||||||
it("should now allow viewers to invite", async () => {
|
it("should now allow viewers to invite", async () => {
|
||||||
const user = await buildViewer();
|
const user = await buildViewer();
|
||||||
const res = await server.post("/api/users.invite", {
|
const res = await server.post("/api/users.invite", user, {
|
||||||
body: {
|
body: {
|
||||||
token: user.getJwtToken(),
|
|
||||||
invites: [
|
invites: [
|
||||||
{
|
{
|
||||||
email: "test@example.com",
|
email: "test@example.com",
|
||||||
@@ -515,9 +465,8 @@ describe("#users.invite", () => {
|
|||||||
await team.save();
|
await team.save();
|
||||||
|
|
||||||
const user = await buildUser({ teamId: team.id });
|
const user = await buildUser({ teamId: team.id });
|
||||||
const res = await server.post("/api/users.invite", {
|
const res = await server.post("/api/users.invite", user, {
|
||||||
body: {
|
body: {
|
||||||
token: user.getJwtToken(),
|
|
||||||
invites: [
|
invites: [
|
||||||
{
|
{
|
||||||
email: "test@example.com",
|
email: "test@example.com",
|
||||||
@@ -532,9 +481,8 @@ describe("#users.invite", () => {
|
|||||||
|
|
||||||
it("should invite user as an admin", async () => {
|
it("should invite user as an admin", async () => {
|
||||||
const admin = await buildAdmin();
|
const admin = await buildAdmin();
|
||||||
const res = await server.post("/api/users.invite", {
|
const res = await server.post("/api/users.invite", admin, {
|
||||||
body: {
|
body: {
|
||||||
token: admin.getJwtToken(),
|
|
||||||
invites: [
|
invites: [
|
||||||
{
|
{
|
||||||
email: "test@example.com",
|
email: "test@example.com",
|
||||||
@@ -552,9 +500,8 @@ describe("#users.invite", () => {
|
|||||||
|
|
||||||
it("should invite user as a viewer", async () => {
|
it("should invite user as a viewer", async () => {
|
||||||
const admin = await buildAdmin();
|
const admin = await buildAdmin();
|
||||||
const res = await server.post("/api/users.invite", {
|
const res = await server.post("/api/users.invite", admin, {
|
||||||
body: {
|
body: {
|
||||||
token: admin.getJwtToken(),
|
|
||||||
invites: [
|
invites: [
|
||||||
{
|
{
|
||||||
email: "test@example.com",
|
email: "test@example.com",
|
||||||
@@ -572,9 +519,8 @@ describe("#users.invite", () => {
|
|||||||
|
|
||||||
it("should limit number of invites", async () => {
|
it("should limit number of invites", async () => {
|
||||||
const user = await buildUser();
|
const user = await buildUser();
|
||||||
const res = await server.post("/api/users.invite", {
|
const res = await server.post("/api/users.invite", user, {
|
||||||
body: {
|
body: {
|
||||||
token: user.getJwtToken(),
|
|
||||||
invites: new Array(21).fill({
|
invites: new Array(21).fill({
|
||||||
email: "test@example.com",
|
email: "test@example.com",
|
||||||
name: "Test",
|
name: "Test",
|
||||||
@@ -597,11 +543,7 @@ describe("#users.delete", () => {
|
|||||||
await buildUser({
|
await buildUser({
|
||||||
teamId: user.teamId,
|
teamId: user.teamId,
|
||||||
});
|
});
|
||||||
const res = await server.post("/api/users.delete", {
|
const res = await server.post("/api/users.delete", user);
|
||||||
body: {
|
|
||||||
token: user.getJwtToken(),
|
|
||||||
},
|
|
||||||
});
|
|
||||||
expect(res.status).toEqual(400);
|
expect(res.status).toEqual(400);
|
||||||
});
|
});
|
||||||
|
|
||||||
@@ -610,10 +552,9 @@ describe("#users.delete", () => {
|
|||||||
await buildUser({
|
await buildUser({
|
||||||
teamId: user.teamId,
|
teamId: user.teamId,
|
||||||
});
|
});
|
||||||
const res = await server.post("/api/users.delete", {
|
const res = await server.post("/api/users.delete", user, {
|
||||||
body: {
|
body: {
|
||||||
code: "123",
|
code: "123",
|
||||||
token: user.getJwtToken(),
|
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
expect(res.status).toEqual(400);
|
expect(res.status).toEqual(400);
|
||||||
@@ -624,10 +565,9 @@ describe("#users.delete", () => {
|
|||||||
await buildUser({
|
await buildUser({
|
||||||
teamId: user.teamId,
|
teamId: user.teamId,
|
||||||
});
|
});
|
||||||
const res = await server.post("/api/users.delete", {
|
const res = await server.post("/api/users.delete", user, {
|
||||||
body: {
|
body: {
|
||||||
code: user.deleteConfirmationCode,
|
code: user.deleteConfirmationCode,
|
||||||
token: user.getJwtToken(),
|
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
expect(res.status).toEqual(200);
|
expect(res.status).toEqual(200);
|
||||||
@@ -638,10 +578,9 @@ describe("#users.delete", () => {
|
|||||||
const user = await buildUser({
|
const user = await buildUser({
|
||||||
teamId: admin.teamId,
|
teamId: admin.teamId,
|
||||||
});
|
});
|
||||||
const res = await server.post("/api/users.delete", {
|
const res = await server.post("/api/users.delete", admin, {
|
||||||
body: {
|
body: {
|
||||||
id: user.id,
|
id: user.id,
|
||||||
token: admin.getJwtToken(),
|
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
expect(res.status).toEqual(200);
|
expect(res.status).toEqual(200);
|
||||||
@@ -658,9 +597,8 @@ describe("#users.delete", () => {
|
|||||||
describe("#users.update", () => {
|
describe("#users.update", () => {
|
||||||
it("should update user profile information", async () => {
|
it("should update user profile information", async () => {
|
||||||
const user = await buildUser();
|
const user = await buildUser();
|
||||||
const res = await server.post("/api/users.update", {
|
const res = await server.post("/api/users.update", user, {
|
||||||
body: {
|
body: {
|
||||||
token: user.getJwtToken(),
|
|
||||||
name: "New name",
|
name: "New name",
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
@@ -674,10 +612,9 @@ describe("#users.update", () => {
|
|||||||
const user = await buildUser({
|
const user = await buildUser({
|
||||||
teamId: admin.teamId,
|
teamId: admin.teamId,
|
||||||
});
|
});
|
||||||
const res = await server.post("/api/users.update", {
|
const res = await server.post("/api/users.update", admin, {
|
||||||
body: {
|
body: {
|
||||||
id: user.id,
|
id: user.id,
|
||||||
token: admin.getJwtToken(),
|
|
||||||
name: "New name",
|
name: "New name",
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
@@ -692,10 +629,9 @@ describe("#users.update", () => {
|
|||||||
const user = await buildUser({
|
const user = await buildUser({
|
||||||
teamId: actor.teamId,
|
teamId: actor.teamId,
|
||||||
});
|
});
|
||||||
const res = await server.post("/api/users.update", {
|
const res = await server.post("/api/users.update", actor, {
|
||||||
body: {
|
body: {
|
||||||
id: user.id,
|
id: user.id,
|
||||||
token: actor.getJwtToken(),
|
|
||||||
name: "New name",
|
name: "New name",
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
@@ -704,9 +640,8 @@ describe("#users.update", () => {
|
|||||||
|
|
||||||
it("should fail upon sending invalid user preference", async () => {
|
it("should fail upon sending invalid user preference", async () => {
|
||||||
const user = await buildUser();
|
const user = await buildUser();
|
||||||
const res = await server.post("/api/users.update", {
|
const res = await server.post("/api/users.update", user, {
|
||||||
body: {
|
body: {
|
||||||
token: user.getJwtToken(),
|
|
||||||
name: "New name",
|
name: "New name",
|
||||||
preferences: { invalidPreference: "invalidValue" },
|
preferences: { invalidPreference: "invalidValue" },
|
||||||
},
|
},
|
||||||
@@ -716,9 +651,8 @@ describe("#users.update", () => {
|
|||||||
|
|
||||||
it("should fail upon sending invalid user preference value", async () => {
|
it("should fail upon sending invalid user preference value", async () => {
|
||||||
const user = await buildUser();
|
const user = await buildUser();
|
||||||
const res = await server.post("/api/users.update", {
|
const res = await server.post("/api/users.update", user, {
|
||||||
body: {
|
body: {
|
||||||
token: user.getJwtToken(),
|
|
||||||
name: "New name",
|
name: "New name",
|
||||||
preferences: { rememberLastPath: "invalidValue" },
|
preferences: { rememberLastPath: "invalidValue" },
|
||||||
},
|
},
|
||||||
@@ -728,9 +662,8 @@ describe("#users.update", () => {
|
|||||||
|
|
||||||
it("should update rememberLastPath user preference", async () => {
|
it("should update rememberLastPath user preference", async () => {
|
||||||
const user = await buildUser();
|
const user = await buildUser();
|
||||||
const res = await server.post("/api/users.update", {
|
const res = await server.post("/api/users.update", user, {
|
||||||
body: {
|
body: {
|
||||||
token: user.getJwtToken(),
|
|
||||||
name: "New name",
|
name: "New name",
|
||||||
preferences: {
|
preferences: {
|
||||||
rememberLastPath: true,
|
rememberLastPath: true,
|
||||||
@@ -744,9 +677,8 @@ describe("#users.update", () => {
|
|||||||
|
|
||||||
it("should update user timezone", async () => {
|
it("should update user timezone", async () => {
|
||||||
const user = await buildUser();
|
const user = await buildUser();
|
||||||
const res = await server.post("/api/users.update", {
|
const res = await server.post("/api/users.update", user, {
|
||||||
body: {
|
body: {
|
||||||
token: user.getJwtToken(),
|
|
||||||
timezone: "Asia/Calcutta",
|
timezone: "Asia/Calcutta",
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
@@ -768,9 +700,8 @@ describe("#users.updateEmail", () => {
|
|||||||
it("should trigger verification email", async () => {
|
it("should trigger verification email", async () => {
|
||||||
const spy = vi.spyOn(ConfirmUpdateEmail.prototype, "schedule");
|
const spy = vi.spyOn(ConfirmUpdateEmail.prototype, "schedule");
|
||||||
const user = await buildUser();
|
const user = await buildUser();
|
||||||
const res = await server.post("/api/users.updateEmail", {
|
const res = await server.post("/api/users.updateEmail", user, {
|
||||||
body: {
|
body: {
|
||||||
token: user.getJwtToken(),
|
|
||||||
email: faker.internet.email(),
|
email: faker.internet.email(),
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
@@ -791,9 +722,8 @@ describe("#users.updateEmail", () => {
|
|||||||
createdById: user.id,
|
createdById: user.id,
|
||||||
});
|
});
|
||||||
|
|
||||||
const res = await server.post("/api/users.updateEmail", {
|
const res = await server.post("/api/users.updateEmail", user, {
|
||||||
body: {
|
body: {
|
||||||
token: user.getJwtToken(),
|
|
||||||
email: faker.internet.email(),
|
email: faker.internet.email(),
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
@@ -807,9 +737,8 @@ describe("#users.updateEmail", () => {
|
|||||||
const email = faker.internet.email().toLowerCase();
|
const email = faker.internet.email().toLowerCase();
|
||||||
await buildUser({ teamId: user.teamId, email });
|
await buildUser({ teamId: user.teamId, email });
|
||||||
|
|
||||||
const res = await server.post("/api/users.updateEmail", {
|
const res = await server.post("/api/users.updateEmail", user, {
|
||||||
body: {
|
body: {
|
||||||
token: user.getJwtToken(),
|
|
||||||
email,
|
email,
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
@@ -831,7 +760,7 @@ describe("#users.updateEmail", () => {
|
|||||||
const user = await buildUser();
|
const user = await buildUser();
|
||||||
const email = faker.internet.email();
|
const email = faker.internet.email();
|
||||||
await server.get(
|
await server.get(
|
||||||
`/api/users.updateEmail?token=${user.getJwtToken()}&code=${user.getEmailUpdateToken(
|
`/api/users.updateEmail?token=${user.getSessionToken()}&code=${user.getEmailUpdateToken(
|
||||||
email
|
email
|
||||||
)}&follow=true`
|
)}&follow=true`
|
||||||
);
|
);
|
||||||
@@ -848,9 +777,8 @@ describe("#users.update_role", () => {
|
|||||||
const admin = await buildAdmin({ teamId: team.id });
|
const admin = await buildAdmin({ teamId: team.id });
|
||||||
const user = await buildUser({ teamId: team.id });
|
const user = await buildUser({ teamId: team.id });
|
||||||
|
|
||||||
const res = await server.post("/api/users.update_role", {
|
const res = await server.post("/api/users.update_role", admin, {
|
||||||
body: {
|
body: {
|
||||||
token: admin.getJwtToken(),
|
|
||||||
id: user.id,
|
id: user.id,
|
||||||
role: UserRole.Admin,
|
role: UserRole.Admin,
|
||||||
},
|
},
|
||||||
@@ -864,9 +792,8 @@ describe("#users.update_role", () => {
|
|||||||
const admin = await buildAdmin({ teamId: team.id });
|
const admin = await buildAdmin({ teamId: team.id });
|
||||||
const user = await buildAdmin({ teamId: team.id });
|
const user = await buildAdmin({ teamId: team.id });
|
||||||
|
|
||||||
const res = await server.post("/api/users.update_role", {
|
const res = await server.post("/api/users.update_role", admin, {
|
||||||
body: {
|
body: {
|
||||||
token: admin.getJwtToken(),
|
|
||||||
id: user.id,
|
id: user.id,
|
||||||
role: UserRole.Viewer,
|
role: UserRole.Viewer,
|
||||||
},
|
},
|
||||||
@@ -880,9 +807,8 @@ describe("#users.update_role", () => {
|
|||||||
const admin = await buildAdmin({ teamId: team.id });
|
const admin = await buildAdmin({ teamId: team.id });
|
||||||
const user = await buildAdmin({ teamId: team.id });
|
const user = await buildAdmin({ teamId: team.id });
|
||||||
|
|
||||||
const res = await server.post("/api/users.update_role", {
|
const res = await server.post("/api/users.update_role", admin, {
|
||||||
body: {
|
body: {
|
||||||
token: admin.getJwtToken(),
|
|
||||||
id: user.id,
|
id: user.id,
|
||||||
role: UserRole.Admin,
|
role: UserRole.Admin,
|
||||||
},
|
},
|
||||||
@@ -897,9 +823,8 @@ describe("#users.promote", () => {
|
|||||||
const admin = await buildAdmin({ teamId: team.id });
|
const admin = await buildAdmin({ teamId: team.id });
|
||||||
const user = await buildUser({ teamId: team.id });
|
const user = await buildUser({ teamId: team.id });
|
||||||
|
|
||||||
const res = await server.post("/api/users.promote", {
|
const res = await server.post("/api/users.promote", admin, {
|
||||||
body: {
|
body: {
|
||||||
token: admin.getJwtToken(),
|
|
||||||
id: user.id,
|
id: user.id,
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
@@ -908,9 +833,8 @@ describe("#users.promote", () => {
|
|||||||
|
|
||||||
it("should require admin", async () => {
|
it("should require admin", async () => {
|
||||||
const user = await buildUser();
|
const user = await buildUser();
|
||||||
const res = await server.post("/api/users.promote", {
|
const res = await server.post("/api/users.promote", user, {
|
||||||
body: {
|
body: {
|
||||||
token: user.getJwtToken(),
|
|
||||||
id: user.id,
|
id: user.id,
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
@@ -926,9 +850,8 @@ describe("#users.demote", () => {
|
|||||||
const admin = await buildAdmin({ teamId: team.id });
|
const admin = await buildAdmin({ teamId: team.id });
|
||||||
const user = await buildAdmin({ teamId: team.id });
|
const user = await buildAdmin({ teamId: team.id });
|
||||||
|
|
||||||
const res = await server.post("/api/users.demote", {
|
const res = await server.post("/api/users.demote", admin, {
|
||||||
body: {
|
body: {
|
||||||
token: admin.getJwtToken(),
|
|
||||||
id: user.id,
|
id: user.id,
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
@@ -940,9 +863,8 @@ describe("#users.demote", () => {
|
|||||||
const admin = await buildAdmin({ teamId: team.id });
|
const admin = await buildAdmin({ teamId: team.id });
|
||||||
const user = await buildAdmin({ teamId: team.id });
|
const user = await buildAdmin({ teamId: team.id });
|
||||||
|
|
||||||
const res = await server.post("/api/users.demote", {
|
const res = await server.post("/api/users.demote", admin, {
|
||||||
body: {
|
body: {
|
||||||
token: admin.getJwtToken(),
|
|
||||||
id: user.id,
|
id: user.id,
|
||||||
to: "viewer",
|
to: "viewer",
|
||||||
},
|
},
|
||||||
@@ -955,9 +877,8 @@ describe("#users.demote", () => {
|
|||||||
const admin = await buildAdmin({ teamId: team.id });
|
const admin = await buildAdmin({ teamId: team.id });
|
||||||
const user = await buildAdmin({ teamId: team.id });
|
const user = await buildAdmin({ teamId: team.id });
|
||||||
|
|
||||||
const res = await server.post("/api/users.demote", {
|
const res = await server.post("/api/users.demote", admin, {
|
||||||
body: {
|
body: {
|
||||||
token: admin.getJwtToken(),
|
|
||||||
id: user.id,
|
id: user.id,
|
||||||
to: "member",
|
to: "member",
|
||||||
},
|
},
|
||||||
@@ -968,9 +889,8 @@ describe("#users.demote", () => {
|
|||||||
it("should not allow demoting self", async () => {
|
it("should not allow demoting self", async () => {
|
||||||
const admin = await buildAdmin();
|
const admin = await buildAdmin();
|
||||||
await buildAdmin({ teamId: admin.teamId });
|
await buildAdmin({ teamId: admin.teamId });
|
||||||
const res = await server.post("/api/users.demote", {
|
const res = await server.post("/api/users.demote", admin, {
|
||||||
body: {
|
body: {
|
||||||
token: admin.getJwtToken(),
|
|
||||||
id: admin.id,
|
id: admin.id,
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
@@ -981,9 +901,8 @@ describe("#users.demote", () => {
|
|||||||
|
|
||||||
it("should require admin", async () => {
|
it("should require admin", async () => {
|
||||||
const user = await buildUser();
|
const user = await buildUser();
|
||||||
const res = await server.post("/api/users.promote", {
|
const res = await server.post("/api/users.promote", user, {
|
||||||
body: {
|
body: {
|
||||||
token: user.getJwtToken(),
|
|
||||||
id: user.id,
|
id: user.id,
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
@@ -999,9 +918,8 @@ describe("#users.suspend", () => {
|
|||||||
const admin = await buildAdmin({ teamId: team.id });
|
const admin = await buildAdmin({ teamId: team.id });
|
||||||
const user = await buildUser({ teamId: team.id });
|
const user = await buildUser({ teamId: team.id });
|
||||||
|
|
||||||
const res = await server.post("/api/users.suspend", {
|
const res = await server.post("/api/users.suspend", admin, {
|
||||||
body: {
|
body: {
|
||||||
token: admin.getJwtToken(),
|
|
||||||
id: user.id,
|
id: user.id,
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
@@ -1010,9 +928,8 @@ describe("#users.suspend", () => {
|
|||||||
|
|
||||||
it("should not allow suspending self", async () => {
|
it("should not allow suspending self", async () => {
|
||||||
const admin = await buildAdmin();
|
const admin = await buildAdmin();
|
||||||
const res = await server.post("/api/users.suspend", {
|
const res = await server.post("/api/users.suspend", admin, {
|
||||||
body: {
|
body: {
|
||||||
token: admin.getJwtToken(),
|
|
||||||
id: admin.id,
|
id: admin.id,
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
@@ -1023,9 +940,8 @@ describe("#users.suspend", () => {
|
|||||||
|
|
||||||
it("should require admin", async () => {
|
it("should require admin", async () => {
|
||||||
const user = await buildUser();
|
const user = await buildUser();
|
||||||
const res = await server.post("/api/users.suspend", {
|
const res = await server.post("/api/users.suspend", user, {
|
||||||
body: {
|
body: {
|
||||||
token: user.getJwtToken(),
|
|
||||||
id: user.id,
|
id: user.id,
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
@@ -1046,9 +962,8 @@ describe("#users.activate", () => {
|
|||||||
suspendedAt: new Date(),
|
suspendedAt: new Date(),
|
||||||
});
|
});
|
||||||
expect(user.isSuspended).toBe(true);
|
expect(user.isSuspended).toBe(true);
|
||||||
const res = await server.post("/api/users.activate", {
|
const res = await server.post("/api/users.activate", admin, {
|
||||||
body: {
|
body: {
|
||||||
token: admin.getJwtToken(),
|
|
||||||
id: user.id,
|
id: user.id,
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
@@ -1057,9 +972,8 @@ describe("#users.activate", () => {
|
|||||||
|
|
||||||
it("should require admin", async () => {
|
it("should require admin", async () => {
|
||||||
const user = await buildUser();
|
const user = await buildUser();
|
||||||
const res = await server.post("/api/users.activate", {
|
const res = await server.post("/api/users.activate", user, {
|
||||||
body: {
|
body: {
|
||||||
token: user.getJwtToken(),
|
|
||||||
id: user.id,
|
id: user.id,
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
|
|||||||
@@ -23,9 +23,8 @@ describe("#views.list", () => {
|
|||||||
documentId: document.id,
|
documentId: document.id,
|
||||||
userId: user.id,
|
userId: user.id,
|
||||||
});
|
});
|
||||||
const res = await server.post("/api/views.list", {
|
const res = await server.post("/api/views.list", user, {
|
||||||
body: {
|
body: {
|
||||||
token: user.getJwtToken(),
|
|
||||||
documentId: document.id,
|
documentId: document.id,
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
@@ -47,9 +46,8 @@ describe("#views.list", () => {
|
|||||||
|
|
||||||
await user.update({ suspendedAt: new Date() });
|
await user.update({ suspendedAt: new Date() });
|
||||||
|
|
||||||
const res = await server.post("/api/views.list", {
|
const res = await server.post("/api/views.list", admin, {
|
||||||
body: {
|
body: {
|
||||||
token: admin.getJwtToken(),
|
|
||||||
documentId: document.id,
|
documentId: document.id,
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
@@ -82,9 +80,8 @@ describe("#views.list", () => {
|
|||||||
documentId: document.id,
|
documentId: document.id,
|
||||||
userId: user.id,
|
userId: user.id,
|
||||||
});
|
});
|
||||||
const res = await server.post("/api/views.list", {
|
const res = await server.post("/api/views.list", user, {
|
||||||
body: {
|
body: {
|
||||||
token: user.getJwtToken(),
|
|
||||||
documentId: document.id,
|
documentId: document.id,
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
@@ -109,9 +106,8 @@ describe("#views.list", () => {
|
|||||||
it("should require authorization", async () => {
|
it("should require authorization", async () => {
|
||||||
const document = await buildDocument();
|
const document = await buildDocument();
|
||||||
const user = await buildUser();
|
const user = await buildUser();
|
||||||
const res = await server.post("/api/views.list", {
|
const res = await server.post("/api/views.list", user, {
|
||||||
body: {
|
body: {
|
||||||
token: user.getJwtToken(),
|
|
||||||
documentId: document.id,
|
documentId: document.id,
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
@@ -126,9 +122,8 @@ describe("#views.create", () => {
|
|||||||
userId: user.id,
|
userId: user.id,
|
||||||
teamId: user.teamId,
|
teamId: user.teamId,
|
||||||
});
|
});
|
||||||
const res = await server.post("/api/views.create", {
|
const res = await server.post("/api/views.create", user, {
|
||||||
body: {
|
body: {
|
||||||
token: user.getJwtToken(),
|
|
||||||
documentId: document.id,
|
documentId: document.id,
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
@@ -157,9 +152,8 @@ describe("#views.create", () => {
|
|||||||
userId: user.id,
|
userId: user.id,
|
||||||
permission: CollectionPermission.Read,
|
permission: CollectionPermission.Read,
|
||||||
});
|
});
|
||||||
const res = await server.post("/api/views.create", {
|
const res = await server.post("/api/views.create", user, {
|
||||||
body: {
|
body: {
|
||||||
token: user.getJwtToken(),
|
|
||||||
documentId: document.id,
|
documentId: document.id,
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
@@ -183,9 +177,8 @@ describe("#views.create", () => {
|
|||||||
it("should require authorization", async () => {
|
it("should require authorization", async () => {
|
||||||
const document = await buildDocument();
|
const document = await buildDocument();
|
||||||
const user = await buildUser();
|
const user = await buildUser();
|
||||||
const res = await server.post("/api/views.create", {
|
const res = await server.post("/api/views.create", user, {
|
||||||
body: {
|
body: {
|
||||||
token: user.getJwtToken(),
|
|
||||||
documentId: document.id,
|
documentId: document.id,
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
|
|||||||
@@ -1,5 +1,7 @@
|
|||||||
|
import { addMonths } from "date-fns";
|
||||||
import { buildUser, buildCollection } from "@server/test/factories";
|
import { buildUser, buildCollection } from "@server/test/factories";
|
||||||
import { getTestServer } from "@server/test/support";
|
import { getTestServer } from "@server/test/support";
|
||||||
|
import { getJWTPayload } from "@server/utils/jwt";
|
||||||
|
|
||||||
const server = getTestServer();
|
const server = getTestServer();
|
||||||
|
|
||||||
@@ -33,9 +35,36 @@ describe("auth/redirect", () => {
|
|||||||
expect(res.headers.get("location")!.includes(collection.path)).toBeTruthy();
|
expect(res.headers.get("location")!.includes(collection.path)).toBeTruthy();
|
||||||
});
|
});
|
||||||
|
|
||||||
|
it("should issue a session token with an expiry", async () => {
|
||||||
|
const user = await buildUser();
|
||||||
|
const before = Date.now();
|
||||||
|
const res = await server.get(
|
||||||
|
`/auth/redirect?token=${user.getTransferToken()}`,
|
||||||
|
{
|
||||||
|
redirect: "manual",
|
||||||
|
}
|
||||||
|
);
|
||||||
|
expect(res.status).toEqual(302);
|
||||||
|
|
||||||
|
const cookie = res.headers.get("set-cookie");
|
||||||
|
expect(cookie).not.toBeNull();
|
||||||
|
const match = cookie!.match(/accessToken=([^;]+)/);
|
||||||
|
expect(match).not.toBeNull();
|
||||||
|
|
||||||
|
const payload = getJWTPayload(match![1]);
|
||||||
|
expect(payload.type).toEqual("session");
|
||||||
|
expect(payload.expiresAt).toBeDefined();
|
||||||
|
|
||||||
|
const expiresAt = new Date(payload.expiresAt as string).getTime();
|
||||||
|
const expectedMin = addMonths(before, 3).getTime() - 1000;
|
||||||
|
const expectedMax = addMonths(Date.now(), 3).getTime() + 1000;
|
||||||
|
expect(expiresAt).toBeGreaterThanOrEqual(expectedMin);
|
||||||
|
expect(expiresAt).toBeLessThanOrEqual(expectedMax);
|
||||||
|
});
|
||||||
|
|
||||||
it("should prevent token extension by rejecting JWT tokens", async () => {
|
it("should prevent token extension by rejecting JWT tokens", async () => {
|
||||||
const user = await buildUser();
|
const user = await buildUser();
|
||||||
const jwtToken = user.getJwtToken();
|
const jwtToken = user.getSessionToken();
|
||||||
|
|
||||||
const res = await server.get(`/auth/redirect?token=${jwtToken}`, {
|
const res = await server.get(`/auth/redirect?token=${jwtToken}`, {
|
||||||
redirect: "manual",
|
redirect: "manual",
|
||||||
|
|||||||
@@ -43,14 +43,15 @@ router.get(
|
|||||||
throw AuthenticationError("Cannot extend token");
|
throw AuthenticationError("Cannot extend token");
|
||||||
}
|
}
|
||||||
|
|
||||||
const jwtToken = user.getJwtToken(undefined, service);
|
const expires = addMonths(new Date(), 3);
|
||||||
|
const jwtToken = user.getSessionToken(expires, service);
|
||||||
|
|
||||||
// ensure that the lastActiveAt on user is updated to prevent replay requests
|
// ensure that the lastActiveAt on user is updated to prevent replay requests
|
||||||
await user.updateActiveAt(ctx, true);
|
await user.updateActiveAt(ctx, true);
|
||||||
|
|
||||||
ctx.cookies.set("accessToken", jwtToken, {
|
ctx.cookies.set("accessToken", jwtToken, {
|
||||||
sameSite: "lax",
|
sameSite: "lax",
|
||||||
expires: addMonths(new Date(), 3),
|
expires,
|
||||||
});
|
});
|
||||||
const [team, collection, view] = await Promise.all([
|
const [team, collection, view] = await Promise.all([
|
||||||
Team.findByPk(user.teamId),
|
Team.findByPk(user.teamId),
|
||||||
|
|||||||
@@ -34,7 +34,7 @@ describe("POST /mcp/", () => {
|
|||||||
const { body } = mcpRequest("tools/list");
|
const { body } = mcpRequest("tools/list");
|
||||||
const res = await server.post("/mcp/", {
|
const res = await server.post("/mcp/", {
|
||||||
headers: {
|
headers: {
|
||||||
Authorization: `Bearer ${user.getJwtToken()}`,
|
Authorization: `Bearer ${user.getSessionToken()}`,
|
||||||
Accept: "application/json, text/event-stream",
|
Accept: "application/json, text/event-stream",
|
||||||
},
|
},
|
||||||
body,
|
body,
|
||||||
|
|||||||
+151
-15
@@ -11,6 +11,34 @@ type TestRequestOptions = Omit<RequestInit, "body" | "headers"> & {
|
|||||||
headers?: Record<string, string>;
|
headers?: Record<string, string>;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
interface Authable {
|
||||||
|
getSessionToken(): string;
|
||||||
|
}
|
||||||
|
|
||||||
|
const tokenCache = new WeakMap<Authable, string>();
|
||||||
|
|
||||||
|
function getCachedSessionToken(user: Authable): string {
|
||||||
|
let token = tokenCache.get(user);
|
||||||
|
if (!token) {
|
||||||
|
token = user.getSessionToken();
|
||||||
|
tokenCache.set(user, token);
|
||||||
|
}
|
||||||
|
return token;
|
||||||
|
}
|
||||||
|
|
||||||
|
function normalizeArgs(
|
||||||
|
userOrOpts?: Authable | TestRequestOptions,
|
||||||
|
maybeOpts?: TestRequestOptions
|
||||||
|
): { user?: Authable; opts: TestRequestOptions } {
|
||||||
|
if (
|
||||||
|
userOrOpts &&
|
||||||
|
typeof (userOrOpts as Authable).getSessionToken === "function"
|
||||||
|
) {
|
||||||
|
return { user: userOrOpts as Authable, opts: maybeOpts ?? {} };
|
||||||
|
}
|
||||||
|
return { opts: (userOrOpts as TestRequestOptions) ?? {} };
|
||||||
|
}
|
||||||
|
|
||||||
class TestServer {
|
class TestServer {
|
||||||
private server: http.Server;
|
private server: http.Server;
|
||||||
private listener?: Promise<void> | null;
|
private listener?: Promise<void> | null;
|
||||||
@@ -36,10 +64,24 @@ class TestServer {
|
|||||||
return this.listener;
|
return this.listener;
|
||||||
}
|
}
|
||||||
|
|
||||||
fetch(path: string, opts: TestRequestOptions) {
|
fetch(path: string, opts?: TestRequestOptions): ReturnType<typeof nodeFetch>;
|
||||||
|
fetch(
|
||||||
|
path: string,
|
||||||
|
user: Authable,
|
||||||
|
opts?: TestRequestOptions
|
||||||
|
): ReturnType<typeof nodeFetch>;
|
||||||
|
fetch(
|
||||||
|
path: string,
|
||||||
|
userOrOpts?: Authable | TestRequestOptions,
|
||||||
|
maybeOpts?: TestRequestOptions
|
||||||
|
) {
|
||||||
|
const { user, opts } = normalizeArgs(userOrOpts, maybeOpts);
|
||||||
return this.listen().then(() => {
|
return this.listen().then(() => {
|
||||||
const url = `${this.address}${path}`;
|
const url = `${this.address}${path}`;
|
||||||
const headers: Record<string, string> = { ...opts.headers };
|
const headers: Record<string, string> = { ...opts.headers };
|
||||||
|
if (user && !headers.Authorization && !headers.authorization) {
|
||||||
|
headers.Authorization = `Bearer ${getCachedSessionToken(user)}`;
|
||||||
|
}
|
||||||
let body = opts.body;
|
let body = opts.body;
|
||||||
const contentType = headers["Content-Type"] ?? headers["content-type"];
|
const contentType = headers["Content-Type"] ?? headers["content-type"];
|
||||||
// automatic JSON encoding
|
// automatic JSON encoding
|
||||||
@@ -62,32 +104,126 @@ class TestServer {
|
|||||||
this.server.close();
|
this.server.close();
|
||||||
}
|
}
|
||||||
|
|
||||||
delete(path: string, options?: TestRequestOptions) {
|
delete(path: string, opts?: TestRequestOptions): ReturnType<typeof nodeFetch>;
|
||||||
return this.fetch(path, { ...options, method: "DELETE" });
|
delete(
|
||||||
|
path: string,
|
||||||
|
user: Authable,
|
||||||
|
opts?: TestRequestOptions
|
||||||
|
): ReturnType<typeof nodeFetch>;
|
||||||
|
delete(
|
||||||
|
path: string,
|
||||||
|
userOrOpts?: Authable | TestRequestOptions,
|
||||||
|
maybeOpts?: TestRequestOptions
|
||||||
|
) {
|
||||||
|
const { user, opts } = normalizeArgs(userOrOpts, maybeOpts);
|
||||||
|
return user
|
||||||
|
? this.fetch(path, user, { ...opts, method: "DELETE" })
|
||||||
|
: this.fetch(path, { ...opts, method: "DELETE" });
|
||||||
}
|
}
|
||||||
|
|
||||||
get(path: string, options?: TestRequestOptions) {
|
get(path: string, opts?: TestRequestOptions): ReturnType<typeof nodeFetch>;
|
||||||
return this.fetch(path, { ...options, method: "GET" });
|
get(
|
||||||
|
path: string,
|
||||||
|
user: Authable,
|
||||||
|
opts?: TestRequestOptions
|
||||||
|
): ReturnType<typeof nodeFetch>;
|
||||||
|
get(
|
||||||
|
path: string,
|
||||||
|
userOrOpts?: Authable | TestRequestOptions,
|
||||||
|
maybeOpts?: TestRequestOptions
|
||||||
|
) {
|
||||||
|
const { user, opts } = normalizeArgs(userOrOpts, maybeOpts);
|
||||||
|
return user
|
||||||
|
? this.fetch(path, user, { ...opts, method: "GET" })
|
||||||
|
: this.fetch(path, { ...opts, method: "GET" });
|
||||||
}
|
}
|
||||||
|
|
||||||
head(path: string, options?: TestRequestOptions) {
|
head(path: string, opts?: TestRequestOptions): ReturnType<typeof nodeFetch>;
|
||||||
return this.fetch(path, { ...options, method: "HEAD" });
|
head(
|
||||||
|
path: string,
|
||||||
|
user: Authable,
|
||||||
|
opts?: TestRequestOptions
|
||||||
|
): ReturnType<typeof nodeFetch>;
|
||||||
|
head(
|
||||||
|
path: string,
|
||||||
|
userOrOpts?: Authable | TestRequestOptions,
|
||||||
|
maybeOpts?: TestRequestOptions
|
||||||
|
) {
|
||||||
|
const { user, opts } = normalizeArgs(userOrOpts, maybeOpts);
|
||||||
|
return user
|
||||||
|
? this.fetch(path, user, { ...opts, method: "HEAD" })
|
||||||
|
: this.fetch(path, { ...opts, method: "HEAD" });
|
||||||
}
|
}
|
||||||
|
|
||||||
options(path: string, options?: TestRequestOptions) {
|
options(
|
||||||
return this.fetch(path, { ...options, method: "OPTIONS" });
|
path: string,
|
||||||
|
opts?: TestRequestOptions
|
||||||
|
): ReturnType<typeof nodeFetch>;
|
||||||
|
options(
|
||||||
|
path: string,
|
||||||
|
user: Authable,
|
||||||
|
opts?: TestRequestOptions
|
||||||
|
): ReturnType<typeof nodeFetch>;
|
||||||
|
options(
|
||||||
|
path: string,
|
||||||
|
userOrOpts?: Authable | TestRequestOptions,
|
||||||
|
maybeOpts?: TestRequestOptions
|
||||||
|
) {
|
||||||
|
const { user, opts } = normalizeArgs(userOrOpts, maybeOpts);
|
||||||
|
return user
|
||||||
|
? this.fetch(path, user, { ...opts, method: "OPTIONS" })
|
||||||
|
: this.fetch(path, { ...opts, method: "OPTIONS" });
|
||||||
}
|
}
|
||||||
|
|
||||||
patch(path: string, options?: TestRequestOptions) {
|
patch(path: string, opts?: TestRequestOptions): ReturnType<typeof nodeFetch>;
|
||||||
return this.fetch(path, { ...options, method: "PATCH" });
|
patch(
|
||||||
|
path: string,
|
||||||
|
user: Authable,
|
||||||
|
opts?: TestRequestOptions
|
||||||
|
): ReturnType<typeof nodeFetch>;
|
||||||
|
patch(
|
||||||
|
path: string,
|
||||||
|
userOrOpts?: Authable | TestRequestOptions,
|
||||||
|
maybeOpts?: TestRequestOptions
|
||||||
|
) {
|
||||||
|
const { user, opts } = normalizeArgs(userOrOpts, maybeOpts);
|
||||||
|
return user
|
||||||
|
? this.fetch(path, user, { ...opts, method: "PATCH" })
|
||||||
|
: this.fetch(path, { ...opts, method: "PATCH" });
|
||||||
}
|
}
|
||||||
|
|
||||||
post(path: string, options?: TestRequestOptions) {
|
post(path: string, opts?: TestRequestOptions): ReturnType<typeof nodeFetch>;
|
||||||
return this.fetch(path, { ...options, method: "POST" });
|
post(
|
||||||
|
path: string,
|
||||||
|
user: Authable,
|
||||||
|
opts?: TestRequestOptions
|
||||||
|
): ReturnType<typeof nodeFetch>;
|
||||||
|
post(
|
||||||
|
path: string,
|
||||||
|
userOrOpts?: Authable | TestRequestOptions,
|
||||||
|
maybeOpts?: TestRequestOptions
|
||||||
|
) {
|
||||||
|
const { user, opts } = normalizeArgs(userOrOpts, maybeOpts);
|
||||||
|
return user
|
||||||
|
? this.fetch(path, user, { ...opts, method: "POST" })
|
||||||
|
: this.fetch(path, { ...opts, method: "POST" });
|
||||||
}
|
}
|
||||||
|
|
||||||
put(path: string, options?: TestRequestOptions) {
|
put(path: string, opts?: TestRequestOptions): ReturnType<typeof nodeFetch>;
|
||||||
return this.fetch(path, { ...options, method: "PUT" });
|
put(
|
||||||
|
path: string,
|
||||||
|
user: Authable,
|
||||||
|
opts?: TestRequestOptions
|
||||||
|
): ReturnType<typeof nodeFetch>;
|
||||||
|
put(
|
||||||
|
path: string,
|
||||||
|
userOrOpts?: Authable | TestRequestOptions,
|
||||||
|
maybeOpts?: TestRequestOptions
|
||||||
|
) {
|
||||||
|
const { user, opts } = normalizeArgs(userOrOpts, maybeOpts);
|
||||||
|
return user
|
||||||
|
? this.fetch(path, user, { ...opts, method: "PUT" })
|
||||||
|
: this.fetch(path, { ...opts, method: "PUT" });
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -64,7 +64,7 @@ export function withAPIContext<T>(
|
|||||||
auth: {
|
auth: {
|
||||||
user,
|
user,
|
||||||
type: AuthenticationType.APP,
|
type: AuthenticationType.APP,
|
||||||
token: user.getJwtToken(),
|
token: user.getSessionToken(),
|
||||||
},
|
},
|
||||||
transaction,
|
transaction,
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -134,7 +134,7 @@ export async function signIn(
|
|||||||
);
|
);
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
ctx.cookies.set("accessToken", user.getJwtToken(expires, service), {
|
ctx.cookies.set("accessToken", user.getSessionToken(expires, service), {
|
||||||
sameSite: "lax",
|
sameSite: "lax",
|
||||||
expires,
|
expires,
|
||||||
});
|
});
|
||||||
|
|||||||
Reference in New Issue
Block a user