44 lines
1.3 KiB
JavaScript
44 lines
1.3 KiB
JavaScript
const {
|
|
workspaceDeletionProtection,
|
|
} = require("../../../utils/middleware/workspaceDeletionProtection");
|
|
|
|
describe("workspaceDeletionProtection middleware", () => {
|
|
const originalValue = process.env.WORKSPACE_DELETION_PROTECTION;
|
|
const hadValue = "WORKSPACE_DELETION_PROTECTION" in process.env;
|
|
|
|
afterEach(() => {
|
|
if (hadValue) {
|
|
process.env.WORKSPACE_DELETION_PROTECTION = originalValue;
|
|
} else {
|
|
delete process.env.WORKSPACE_DELETION_PROTECTION;
|
|
}
|
|
});
|
|
|
|
it("calls next when WORKSPACE_DELETION_PROTECTION is not present", () => {
|
|
delete process.env.WORKSPACE_DELETION_PROTECTION;
|
|
const next = jest.fn();
|
|
|
|
workspaceDeletionProtection({}, {}, next);
|
|
|
|
expect(next).toHaveBeenCalledTimes(1);
|
|
});
|
|
|
|
it("returns 403 when WORKSPACE_DELETION_PROTECTION is present with any value", () => {
|
|
process.env.WORKSPACE_DELETION_PROTECTION = "1";
|
|
const next = jest.fn();
|
|
const response = {
|
|
status: jest.fn().mockReturnThis(),
|
|
json: jest.fn(),
|
|
};
|
|
|
|
workspaceDeletionProtection({}, response, next);
|
|
|
|
expect(next).not.toHaveBeenCalled();
|
|
expect(response.status).toHaveBeenCalledWith(403);
|
|
expect(response.json).toHaveBeenCalledWith({
|
|
success: false,
|
|
error: "Workspace deletion is blocked by the system administrator.",
|
|
});
|
|
});
|
|
});
|