Skip to content

Commit d9bd880

Browse files
committed
Fix CA and client certificate service tests
1 parent b15bd83 commit d9bd880

File tree

2 files changed

+38
-4
lines changed

2 files changed

+38
-4
lines changed

redisinsight/api/src/modules/certificate/ca-certificate.service.spec.ts

Lines changed: 19 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -93,9 +93,26 @@ describe('CaCertificateService', () => {
9393
});
9494

9595
describe('delete', () => {
96-
it('should delete ca certificate', async () => {
97-
expect(await service.delete(mockCaCertificate.id)).toEqual(undefined);
96+
const mockId = 'mock-ca-cert-id';
97+
const mockAffectedDatabases = ['db1', 'db2'];
98+
99+
beforeEach(() => {
100+
jest.clearAllMocks();
101+
});
102+
103+
it('should delete CA certificate and remove affected database clients', async () => {
104+
jest.spyOn(repository, 'delete').mockResolvedValue({ affectedDatabases: mockAffectedDatabases });
105+
jest.spyOn(service['redisClientStorage'], 'removeManyByMetadata').mockResolvedValue(undefined);
106+
107+
await service.delete(mockId);
108+
109+
expect(repository.delete).toHaveBeenCalledWith(mockId);
110+
expect(service['redisClientStorage'].removeManyByMetadata).toHaveBeenCalledTimes(mockAffectedDatabases.length);
111+
mockAffectedDatabases.forEach((databaseId) => {
112+
expect(service['redisClientStorage'].removeManyByMetadata).toHaveBeenCalledWith({ databaseId });
113+
});
98114
});
115+
99116
it('should throw encryption error', async () => {
100117
repository.delete.mockRejectedValueOnce(new KeytarEncryptionErrorException());
101118

redisinsight/api/src/modules/certificate/client-certificate.service.spec.ts

Lines changed: 19 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -93,9 +93,26 @@ describe('ClientCertificateService', () => {
9393
});
9494

9595
describe('delete', () => {
96-
it('should delete client certificate', async () => {
97-
expect(await service.delete(mockClientCertificate.id)).toEqual(undefined);
96+
const mockId = 'mock-client-cert-id';
97+
const mockAffectedDatabases = ['db1', 'db2'];
98+
99+
beforeEach(() => {
100+
jest.clearAllMocks();
101+
});
102+
103+
it('should delete client certificate and remove affected database clients', async () => {
104+
jest.spyOn(repository, 'delete').mockResolvedValue({ affectedDatabases: mockAffectedDatabases });
105+
jest.spyOn(service['redisClientStorage'], 'removeManyByMetadata').mockResolvedValue(undefined);
106+
107+
await service.delete(mockId);
108+
109+
expect(repository.delete).toHaveBeenCalledWith(mockId);
110+
expect(service['redisClientStorage'].removeManyByMetadata).toHaveBeenCalledTimes(mockAffectedDatabases.length);
111+
mockAffectedDatabases.forEach((databaseId) => {
112+
expect(service['redisClientStorage'].removeManyByMetadata).toHaveBeenCalledWith({ databaseId });
113+
});
98114
});
115+
99116
it('should throw encryption error', async () => {
100117
repository.delete.mockRejectedValueOnce(new KeytarEncryptionErrorException());
101118

0 commit comments

Comments
 (0)