mirror of
https://github.com/bitwarden/directory-connector
synced 2025-12-05 23:53:21 +00:00
80 lines
2.9 KiB
TypeScript
80 lines
2.9 KiB
TypeScript
import { GetUniqueString } from "@/jslib/common/spec/utils";
|
|
|
|
import { UserEntry } from "@/src/models/userEntry";
|
|
|
|
import { groupSimulator, userSimulator } from "../../utils/request-builder-helper";
|
|
import { RequestBuilderOptions } from "../abstractions/request-builder.service";
|
|
|
|
import { SingleRequestBuilder } from "./single-request-builder";
|
|
|
|
describe("SingleRequestBuilder", () => {
|
|
let singleRequestBuilder: SingleRequestBuilder;
|
|
|
|
beforeEach(async () => {
|
|
singleRequestBuilder = new SingleRequestBuilder();
|
|
});
|
|
|
|
const defaultOptions: RequestBuilderOptions = Object.freeze({
|
|
overwriteExisting: false,
|
|
removeDisabled: false,
|
|
});
|
|
|
|
it("SingleRequestBuilder returns single request for 200 users", () => {
|
|
const mockGroups = groupSimulator(200);
|
|
const mockUsers = userSimulator(200);
|
|
|
|
const requests = singleRequestBuilder.buildRequest(mockGroups, mockUsers, defaultOptions);
|
|
|
|
expect(requests.length).toEqual(1);
|
|
});
|
|
|
|
it("SingleRequestBuilder returns request with overwriteExisting enabled", () => {
|
|
const mockGroups = groupSimulator(200);
|
|
const mockUsers = userSimulator(200);
|
|
|
|
const options = { ...defaultOptions, overwriteExisting: true };
|
|
const request = singleRequestBuilder.buildRequest(mockGroups, mockUsers, options)[0];
|
|
|
|
expect(request.overwriteExisting).toBe(true);
|
|
});
|
|
|
|
it("SingleRequestBuilder returns request with deleted user when removeDisabled is true", () => {
|
|
const mockGroups = groupSimulator(200);
|
|
const mockUsers = userSimulator(200);
|
|
|
|
const disabledUser = new UserEntry();
|
|
const disabledUserEmail = GetUniqueString() + "@example.com";
|
|
disabledUser.disabled = true;
|
|
disabledUser.email = disabledUserEmail;
|
|
mockUsers.push(disabledUser);
|
|
|
|
const options = { ...defaultOptions, removeDisabled: true };
|
|
const request = singleRequestBuilder.buildRequest(mockGroups, mockUsers, options)[0];
|
|
|
|
expect(request.members.length).toEqual(201);
|
|
expect(request.members.pop()).toEqual(
|
|
expect.objectContaining({ email: disabledUserEmail, deleted: true }),
|
|
);
|
|
expect(request.overwriteExisting).toBe(false);
|
|
});
|
|
|
|
it("SingleRequestBuilder returns request with deleted user and overwriteExisting enabled when overwriteExisting and removeDisabled are true", () => {
|
|
const mockGroups = groupSimulator(200);
|
|
const mockUsers = userSimulator(200);
|
|
|
|
const disabledUser = new UserEntry();
|
|
const disabledUserEmail = GetUniqueString() + "@example.com";
|
|
disabledUser.disabled = true;
|
|
disabledUser.email = disabledUserEmail;
|
|
mockUsers.push(disabledUser);
|
|
|
|
const options = { overwriteExisting: true, removeDisabled: true };
|
|
const request = singleRequestBuilder.buildRequest(mockGroups, mockUsers, options)[0];
|
|
|
|
expect(request.members.pop()).toEqual(
|
|
expect.objectContaining({ email: disabledUserEmail, deleted: true }),
|
|
);
|
|
expect(request.overwriteExisting).toBe(true);
|
|
});
|
|
});
|