@lokalise/node-api
Version:
Official Lokalise API 2.0 Node.js client
116 lines (92 loc) • 2.89 kB
text/typescript
import type { TeamUserParams } from "../../src/main.js";
import { describe, expect, it, LokaliseApi, Stub } from "../setup.js";
describe("TeamUsers", () => {
const lokaliseApi = new LokaliseApi({ apiKey: process.env.API_KEY });
const teamId = 176692;
const userId = 308781;
it("lists", async () => {
const stub = new Stub({
fixture: "team_users/list.json",
uri: `teams/${teamId}/users`,
respHeaders: {
"x-pagination-total-count": "3",
"x-pagination-page": "1",
"x-pagination-limit": "500",
"x-pagination-page-count": "1",
},
});
await stub.setStub();
const team_users = await lokaliseApi.teamUsers().list({ team_id: teamId });
expect(team_users.items[0].user_id).to.eq(userId);
});
it("lists and paginates", async () => {
const params = {
page: 2,
limit: 2,
};
const stub = new Stub({
fixture: "team_users/list_pagination.json",
uri: `teams/${teamId}/users`,
query: params,
respHeaders: {
"x-pagination-total-count": "3",
"x-pagination-page": "2",
"x-pagination-limit": "2",
"x-pagination-page-count": "2",
},
});
await stub.setStub();
const team_users = await lokaliseApi
.teamUsers()
.list({ team_id: teamId, ...params });
expect(team_users.items[0].user_id).to.eq(141203);
expect(team_users.totalResults).to.eq(3);
expect(team_users.totalPages).to.eq(2);
expect(team_users.resultsPerPage).to.eq(2);
expect(team_users.currentPage).to.eq(2);
});
it("retrieves", async () => {
const stub = new Stub({
fixture: "team_users/retrieve.json",
uri: `teams/${teamId}/users/${20181}`,
});
await stub.setStub();
const team_user = await lokaliseApi.teamUsers().get(20181, {
team_id: teamId,
});
expect(team_user.user_id).to.eq(20181);
expect(team_user.email).to.eq("bodrovis@protonmail.com");
expect(team_user.fullname).to.eq("Ilya B");
expect(team_user.created_at).to.eq("2018-08-21 15:35:25 (Etc/UTC)");
expect(team_user.created_at_timestamp).to.eq(1534865725);
expect(team_user.role).to.eq("owner");
});
it("updates", async () => {
const params: TeamUserParams = { role: "admin" };
const stub = new Stub({
fixture: "team_users/update.json",
uri: `teams/${teamId}/users/${userId}`,
body: params,
method: "PUT",
});
await stub.setStub();
const team_user = await lokaliseApi
.teamUsers()
.update(userId, params, { team_id: teamId });
expect(team_user.user_id).to.eq(userId);
expect(team_user.role).to.eq("admin");
});
it("deletes", async () => {
const stub = new Stub({
fixture: "team_users/delete.json",
uri: `teams/${teamId}/users/${userId}`,
method: "DELETE",
});
await stub.setStub();
const response = await lokaliseApi.teamUsers().delete(userId, {
team_id: teamId,
});
expect(response.team_id).to.eq(teamId);
expect(response.team_user_deleted).to.be.true;
});
});