boldsign
Version:
NodeJS client for boldsign
226 lines (225 loc) • 7.96 kB
text/typescript
import { TeamsApi } from '../../api/teamsApi';
import { CreateTeamRequest, TeamListResponse, TeamUpdateRequest } from '../../model';
import config from '../config';
describe('TeamsTestcase', () => {
let teamsApi:TeamsApi;
let createdTeamId:any
let teamName:any
const randomNumbers = () => {
const randomNum = Math.floor(100 + Math.random() * 900);
return String(randomNum);
};
beforeAll(() => {
createdTeamId = null;
teamName = null;
const apiKey = config.apiKey;
const baseUrl = config.baseUrl;
if (!apiKey || !baseUrl) {
throw new Error("Environment variables 'API_KEY' or 'HOST_URL' are not set.");
}
teamsApi = new TeamsApi(baseUrl);
teamsApi.setApiKey(apiKey);
teamName = `sdktestingteam${randomNumbers()}`;
});
test('Test1: should create team successfully', async () => {
const createTeamRequest = new CreateTeamRequest();
createTeamRequest.teamName = teamName;
try {
const createTeamResponse = await teamsApi.createTeam(createTeamRequest);
console.log('Team created successfully:', createTeamResponse);
const createdTeam = createTeamResponse?.teamId;
if (createdTeam && createdTeam) {
createdTeamId = String(createdTeam);
console.log('Created Team ID:', createdTeamId);
} else {
console.error('Team ID not found in response.');
throw new Error('Team creation failed.');
}
expect(createTeamResponse.teamId).toBeDefined;
console.log('Created Team ID:', createdTeamId);
} catch (error:any) {
console.error('Error occurred while creating team:', error.message);
expect(error.message).toBeUndefined();
}
},20000);
test('Test2: should return error when team name already exists', async () => {
const createTeamRequest = new CreateTeamRequest();
createTeamRequest.teamName = teamName;
try {
const response = await teamsApi.createTeam(createTeamRequest);
console.log('Team created successfully:', response);
} catch (error: any) {
console.error('Error occurred while creating team:', error.message);
expect(error.message).toBeDefined();
}
},20000);
test('Test3: should return error when team name empty', async () => {
const createTeamRequest = new CreateTeamRequest();
createTeamRequest.teamName = "";
try {
const response = await teamsApi.createTeam(createTeamRequest);
console.log('Team created successfully:', response);
} catch (error: any) {
console.error('Error occurred while creating team:', error);
expect(error).toBeDefined();
expect(error.response.status).toBe(400);
expect(error.response.statusText).toBe('Bad Request');
}
},20000);
test('Test4: should successfully retrieve team list with valid parameters', async () => {
const page = 1;
const pageSize = 100;
try {
const teamListResponse = await teamsApi.listTeams(page, pageSize);
expect(teamListResponse.results).toBeDefined;
const teamsList = teamListResponse?.results;
if (Array.isArray(teamsList)) {
for (let team of teamsList) {
if (team.teamName === teamName) {
createdTeamId = team.teamId;
console.log("Created Team ID:", createdTeamId);
break;
}
}
} else {
console.error("teamsList is not an array or is null/undefined.");
throw new Error("teamsList is invalid.");
}
expect(createdTeamId !=null);
} catch (error: any) {
console.error("Error occurred while retrieving team list:", error.message);
expect(error.message).toBeUndefined();
}
},20000);
test('Test5:should fail to retrieve team list when invalid parameters are passed', async () => {
const page = -1;
const pageSize = -10;
try {
const teamListResponse = await teamsApi.listTeams(page, pageSize);
console.error("Unexpected success response:", teamListResponse);
throw new Error("Expected error, but API call succeeded");
}
catch (error:any)
{
console.log("Expected error occurred:", error.message);
expect(error.message).toBeDefined();
}
},20000);
test('Test6:should fail to retrieve team list when zero value for page and page size', async () => {
const page = 0;
const pageSize = 0;
try {
const teamListResponse = await teamsApi.listTeams(page, pageSize);
console.error("Unexpected success response:", teamListResponse);
throw new Error("Expected error, but API call succeeded");
}
catch (error:any)
{
console.log("Expected error occurred:", error);
expect(error).toBeDefined();
expect(error.response.status).toBe(400);
expect(error.response.statusText).toBe('Bad Request');
}
},20000);
test('Test7:should throw error for update when already existing team name is provided', async () => {
const teamUpdateRequest = {
teamId: createdTeamId,
teamName: teamName,
};
try
{
await teamsApi.updateTeam(teamUpdateRequest);
}
catch (error:any)
{
expect(error).toBeDefined();
expect(error.response.status).toBe(400);
expect(error.response.statusText).toBe('Bad Request');
}
},20000);
test('Test8:should return true when valid team update request is passed', async () => {
const teamUpdateRequest = new TeamUpdateRequest();
teamUpdateRequest.teamId = createdTeamId;
teamUpdateRequest.teamName = "Update"+teamName;
console.log("Teamid before update:", createdTeamId);
try
{
const records = await teamsApi.updateTeam(teamUpdateRequest);
console.log("Team updated successfully:", records);
}
catch (error:any)
{
console.error("Error during team update:", error.message);
expect(error.message).toBeUndefined();
}
},20000);
test('Test9:should throw error for update when invalid team ID is provided', async () => {
const teamUpdateRequest = {
teamId: "wrongTeamId",
teamName: teamName,
};
try
{
await teamsApi.updateTeam(teamUpdateRequest);
}
catch (error:any)
{
expect(error.message).toBeDefined();
}
},20000);
test('Test10:should throw error for update when team name is empty', async () => {
const teamUpdateRequest = {
teamId: createdTeamId,
teamName: "",
};
try
{
await teamsApi.updateTeam(teamUpdateRequest);
}
catch (error:any)
{
expect(error).toBeDefined();
expect(error.response.status).toBe(400);
expect(error.response.statusText).toBe('Bad Request');
}
},20000);
test('Test11:should return true when valid team get request is passed', async () => {
try
{
const records = await teamsApi.getTeam(createdTeamId);
console.log(records);
expect(records.teamName != null);
}
catch (error:any)
{
console.error("Error fetching team:", error.message);
expect(error.message).toBeUndefined();
}
},20000);
test('Test12:should throw error when invalid team ID is provided', async () => {
const invalidTeamId = "INVALID_TEAMID";
try
{
await teamsApi.getTeam(invalidTeamId);
}
catch (error:any)
{
console.log("Expected exception occurred " + error.message);
expect(error).toBeDefined();
expect(error.response.status).toBe(400);
expect(error.response.statusText).toBe('Bad Request');
}
},20000);
test('Test13:should throw error when team ID is empty', async () => {
const invalidTeamId = "";
try
{
await teamsApi.getTeam(invalidTeamId);
}
catch (error:any)
{
console.log("Expected exception occurred: " + error.message);
expect(error.message).toBeDefined();
}
},20000);
});