Skip to content

Commit 1100f46

Browse files
author
Artem
committed
add cloneDeep for redis.connectToInstance method to not mutate object. Fix UTests
1 parent 9433f14 commit 1100f46

File tree

6 files changed

+28
-7
lines changed

6 files changed

+28
-7
lines changed

redisinsight/api/src/__mocks__/databases.ts

Lines changed: 22 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ import { EncryptionStrategy } from 'src/modules/encryption/models';
66
import { mockIORedisClient } from 'src/__mocks__/redis';
77
import { mockSentinelMasterDto } from 'src/__mocks__/redis-sentinel';
88
import { pick } from 'lodash';
9-
import { mockRedisGeneralInfo } from 'src/modules/database/providers/database-info.provider.spec';
9+
import { RedisDatabaseInfoResponse } from 'src/modules/database/dto/redis-info.dto';
1010
import { ClientMetadata } from 'src/modules/redis/models/client-metadata';
1111
import { AppTool } from 'src/models';
1212
import { DatabaseOverview } from 'src/modules/database/models/database-overview';
@@ -134,6 +134,27 @@ export const mockDatabaseOverview: DatabaseOverview = {
134134
cpuUsagePercentage: null,
135135
};
136136

137+
export const mockRedisServerInfoDto = {
138+
redis_version: '6.0.5',
139+
redis_mode: 'standalone',
140+
os: 'Linux 4.15.0-1087-gcp x86_64',
141+
arch_bits: '64',
142+
tcp_port: '11113',
143+
uptime_in_seconds: '1000',
144+
};
145+
146+
export const mockRedisGeneralInfo: RedisDatabaseInfoResponse = {
147+
version: mockRedisServerInfoDto.redis_version,
148+
databases: 16,
149+
role: 'master',
150+
server: mockRedisServerInfoDto,
151+
usedMemory: 1000000,
152+
totalKeys: 1,
153+
connectedClients: 1,
154+
uptimeInSeconds: 1000,
155+
hitRatio: 1,
156+
};
157+
137158
export const mockDatabaseRepository = jest.fn(() => ({
138159
exists: jest.fn().mockResolvedValue(true),
139160
get: jest.fn().mockResolvedValue(mockDatabase),

redisinsight/api/src/modules/database/database-info.service.spec.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,13 +3,13 @@ import {
33
mockDatabase,
44
mockDatabaseConnectionService,
55
mockDatabaseInfoProvider, mockDatabaseOverview, mockDatabaseOverviewProvider,
6+
mockRedisGeneralInfo,
67
} from 'src/__mocks__';
78
import { DatabaseInfoProvider } from 'src/modules/database/providers/database-info.provider';
89
import { DatabaseConnectionService } from 'src/modules/database/database-connection.service';
910
import { AppTool } from 'src/models';
1011
import { DatabaseInfoService } from 'src/modules/database/database-info.service';
1112
import { DatabaseOverviewProvider } from 'src/modules/database/providers/database-overview.provider';
12-
import { mockRedisGeneralInfo } from 'src/modules/database/providers/database-info.provider.spec';
1313

1414
describe('DatabaseConnectionService', () => {
1515
let service: DatabaseInfoService;

redisinsight/api/src/modules/database/database.analytics.spec.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,11 +4,11 @@ import { EventEmitter2 } from '@nestjs/event-emitter';
44
import {
55
mockDatabase,
66
mockDatabaseWithTlsAuth,
7+
mockRedisGeneralInfo,
78
} from 'src/__mocks__';
89
import { TelemetryEvents } from 'src/constants';
910
import { DEFAULT_SUMMARY as DEFAULT_REDIS_MODULES_SUMMARY } from 'src/utils/redis-modules-summary';
1011
import { DatabaseAnalytics } from 'src/modules/database/database.analytics';
11-
import { mockRedisGeneralInfo } from 'src/modules/database/providers/database-info.provider.spec';
1212
import { HostingProvider } from 'src/modules/database/entities/database.entity';
1313

1414
describe('DatabaseAnalytics', () => {

redisinsight/api/src/modules/database/database.service.spec.ts

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,10 +3,9 @@ import { Test, TestingModule } from '@nestjs/testing';
33
import { EventEmitter2 } from '@nestjs/event-emitter';
44
import {
55
mockDatabase, mockDatabaseAnalytics, mockDatabaseFactory, mockDatabaseInfoProvider, mockDatabaseRepository,
6-
mockRedisService, MockType,
6+
mockRedisService, MockType, mockRedisGeneralInfo,
77
} from 'src/__mocks__';
88
import { DatabaseAnalytics } from 'src/modules/database/database.analytics';
9-
import { mockRedisGeneralInfo } from 'src/modules/database/providers/database-info.provider.spec';
109
import { DatabaseService } from 'src/modules/database/database.service';
1110
import { DatabaseRepository } from 'src/modules/database/repositories/database.repository';
1211
import { RedisService } from 'src/modules/redis/redis.service';

redisinsight/api/src/modules/database/providers/database-info.provider.spec.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,7 @@ const mockRedisServerInfoDto = {
4646
uptime_in_seconds: '1000',
4747
};
4848

49-
export const mockRedisGeneralInfo: RedisDatabaseInfoResponse = {
49+
const mockRedisGeneralInfo: RedisDatabaseInfoResponse = {
5050
version: mockRedisServerInfoDto.redis_version,
5151
databases: 16,
5252
role: 'master',

redisinsight/api/src/modules/redis/redis.service.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@ import { CONNECTION_NAME_GLOBAL_PREFIX } from 'src/constants';
1111
import { IRedisClusterNodeAddress } from 'src/models/redis-cluster';
1212
import { ConnectionType } from 'src/modules/database/entities/database.entity';
1313
import { Database } from 'src/modules/database/models/database';
14+
import { cloneClassInstance } from 'src/utils';
1415

1516
const REDIS_CLIENTS_CONFIG = apiConfig.get('redis_clients');
1617

@@ -170,7 +171,7 @@ export class RedisService {
170171
tool = AppTool.Common,
171172
connectionName?,
172173
): Promise<Redis | Cluster> {
173-
const database = databaseDto;
174+
const database = cloneClassInstance(databaseDto);
174175
Object.keys(database).forEach((key: string) => {
175176
if (database[key] === null) {
176177
delete database[key];

0 commit comments

Comments
 (0)