@tomei/media 0.10.0 → 0.10.1-test.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (37) hide show
  1. package/.commitlintrc.json +22 -22
  2. package/.gitlab-ci.yml +234 -16
  3. package/.husky/commit-msg +15 -15
  4. package/.husky/pre-commit +7 -7
  5. package/.prettierrc +4 -4
  6. package/.vscode/settings.json +3 -0
  7. package/README.md +93 -93
  8. package/dist/__tests__/common.service.spec.d.ts +1 -0
  9. package/dist/__tests__/common.service.spec.js +160 -0
  10. package/dist/__tests__/common.service.spec.js.map +1 -0
  11. package/dist/__tests__/medias.repository.spec.d.ts +1 -0
  12. package/dist/__tests__/medias.repository.spec.js +140 -0
  13. package/dist/__tests__/medias.repository.spec.js.map +1 -0
  14. package/dist/__tests__/medias.spec.d.ts +1 -0
  15. package/dist/__tests__/medias.spec.js +347 -0
  16. package/dist/__tests__/medias.spec.js.map +1 -0
  17. package/dist/__tests__/pipes.spec.d.ts +1 -0
  18. package/dist/__tests__/pipes.spec.js +130 -0
  19. package/dist/__tests__/pipes.spec.js.map +1 -0
  20. package/dist/medias.d.ts +2 -2
  21. package/dist/medias.js +7 -1
  22. package/dist/medias.js.map +1 -1
  23. package/dist/tsconfig.tsbuildinfo +1 -1
  24. package/eslint.config.mjs +58 -58
  25. package/jest.config.js +26 -0
  26. package/migration/0001-add-defaultyn-hiddenyn-to-media-table.js +36 -36
  27. package/migration/media-migration.js +82 -82
  28. package/nest-cli.json +18 -18
  29. package/package.json +83 -78
  30. package/sonar-project.properties +12 -12
  31. package/src/__tests__/common.service.spec.ts +203 -0
  32. package/src/__tests__/medias.repository.spec.ts +158 -0
  33. package/src/__tests__/medias.spec.ts +468 -0
  34. package/src/__tests__/pipes.spec.ts +154 -0
  35. package/src/medias.ts +11 -3
  36. package/tsconfig.build.json +4 -4
  37. package/tsconfig.json +30 -30
@@ -0,0 +1,347 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ process.env.MEDIA_STORAGE_TYPE = 'local';
4
+ process.env.MEDIA_LOCAL_STORAGE_PATH = '/tmp/media-test';
5
+ process.env.MEDIA_ENCRYPT_KEY = '12345678901234567890123456789012';
6
+ jest.mock('@tomei/general', () => ({
7
+ ObjectBase: class ObjectBase {
8
+ },
9
+ }));
10
+ jest.mock('@nestjs/swagger', () => ({
11
+ ApiProperty: () => () => { },
12
+ ApiPropertyOptional: () => () => { },
13
+ }));
14
+ jest.mock('sequelize-typescript', () => {
15
+ var _a;
16
+ return ({
17
+ Table: () => () => { },
18
+ Column: () => () => { },
19
+ Model: (_a = class Model {
20
+ constructor() {
21
+ this.get = jest.fn();
22
+ this.update = jest.fn();
23
+ this.destroy = jest.fn();
24
+ }
25
+ },
26
+ _a.findByPk = jest.fn(),
27
+ _a.findOne = jest.fn(),
28
+ _a.findAll = jest.fn(),
29
+ _a.findAndCountAll = jest.fn(),
30
+ _a.create = jest.fn(),
31
+ _a),
32
+ DataType: {
33
+ STRING: 'STRING',
34
+ TEXT: 'TEXT',
35
+ DATE: 'DATE',
36
+ BOOLEAN: 'BOOLEAN',
37
+ ENUM: () => 'ENUM',
38
+ },
39
+ PrimaryKey: () => () => { },
40
+ ForeignKey: () => () => { },
41
+ BelongsTo: () => () => { },
42
+ HasMany: () => () => { },
43
+ CreatedAt: () => () => { },
44
+ UpdatedAt: () => () => { },
45
+ Default: () => () => { },
46
+ AllowNull: () => () => { },
47
+ });
48
+ });
49
+ jest.mock('@nestjs/common', () => ({
50
+ BadRequestException: class BadRequestException extends Error {
51
+ constructor(msg) {
52
+ super(msg);
53
+ this.name = 'BadRequestException';
54
+ }
55
+ },
56
+ NotFoundException: class NotFoundException extends Error {
57
+ constructor(msg) {
58
+ super(msg);
59
+ this.name = 'NotFoundException';
60
+ }
61
+ },
62
+ Injectable: () => (t) => t,
63
+ }));
64
+ jest.mock('@tomei/activity-history', () => ({
65
+ Activity: jest.fn().mockImplementation(() => ({
66
+ create: jest.fn().mockResolvedValue(undefined),
67
+ createId: jest.fn().mockReturnValue('activity-id'),
68
+ ActivityId: '',
69
+ Action: '',
70
+ Description: '',
71
+ EntityType: '',
72
+ EntityId: '',
73
+ EntityValueBefore: '',
74
+ EntityValueAfter: '',
75
+ })),
76
+ ActionEnum: { CREATE: 'Create', UPDATE: 'Update', DELETE: 'Delete' },
77
+ }));
78
+ jest.mock('@tomei/sso', () => ({
79
+ LoginUser: jest.fn(),
80
+ }));
81
+ jest.mock('@paralleldrive/cuid2', () => ({
82
+ createId: jest.fn().mockReturnValue('test-media-id'),
83
+ }));
84
+ const mockRepoMethods = {
85
+ create: jest.fn(),
86
+ findOne: jest.fn(),
87
+ findAll: jest.fn(),
88
+ findAndCountAll: jest.fn(),
89
+ };
90
+ jest.mock('../medias.repository', () => ({
91
+ MediasRepository: jest.fn().mockImplementation(() => mockRepoMethods),
92
+ }));
93
+ const mockUploadData = jest.fn().mockResolvedValue({});
94
+ const mockDeleteIfExists = jest.fn().mockResolvedValue({});
95
+ const mockDownload = jest.fn();
96
+ const mockGetBlockBlobClient = jest.fn().mockReturnValue({
97
+ uploadData: mockUploadData,
98
+ download: mockDownload,
99
+ deleteIfExists: mockDeleteIfExists,
100
+ });
101
+ const mockGetContainerClient = jest.fn().mockReturnValue({
102
+ getBlockBlobClient: mockGetBlockBlobClient,
103
+ });
104
+ jest.mock('@azure/storage-blob', () => ({
105
+ BlobServiceClient: {
106
+ fromConnectionString: jest.fn().mockReturnValue({
107
+ getContainerClient: mockGetContainerClient,
108
+ }),
109
+ },
110
+ }));
111
+ jest.mock('sequelize', () => ({
112
+ Op: { substring: Symbol('Op.substring') },
113
+ }));
114
+ jest.mock('fs');
115
+ const fs = require("fs");
116
+ const medias_1 = require("../medias");
117
+ const medias_enum_1 = require("../enum/medias.enum");
118
+ const stream_1 = require("stream");
119
+ const mockedFs = fs;
120
+ const makeLoginUser = () => ({ ObjectId: 'user-001' });
121
+ const makeMediaAttr = (overrides = {}) => (Object.assign({ MediaId: 'media-001', ObjectId: 'obj-001', ObjectType: 'Rental', Title: 'Test File', Description: 'A test file', Type: medias_enum_1.MediaType.Photo, IsExternalYN: 'N', ExternalSource: '', IsEncryptedYN: 'N', FileName: 'testfile', FileExtension: 'jpg', FilePath: '/tmp/media-test/Rental/obj-001/testfile.jpg', URL: '/tmp/media-test/Rental/obj-001', CreatedById: 'user-001', CreatedAt: new Date('2026-01-01'), UpdatedById: 'user-001', UpdatedAt: new Date('2026-01-01') }, overrides));
122
+ const makeMockModel = (attr = makeMediaAttr()) => (Object.assign({ get: jest.fn().mockReturnValue(attr), update: jest.fn().mockResolvedValue({ get: jest.fn().mockReturnValue(attr) }), destroy: jest.fn().mockResolvedValue(undefined), CollectionId: 1 }, attr));
123
+ describe('Medias', () => {
124
+ beforeEach(() => {
125
+ jest.clearAllMocks();
126
+ mockRepoMethods.create.mockResolvedValue(makeMockModel());
127
+ mockRepoMethods.findOne.mockResolvedValue(makeMockModel());
128
+ mockRepoMethods.findAll.mockResolvedValue([makeMockModel()]);
129
+ mockRepoMethods.findAndCountAll.mockResolvedValue({
130
+ count: 1,
131
+ rows: [makeMockModel()],
132
+ });
133
+ });
134
+ describe('constructor', () => {
135
+ it('creates an instance without media attributes', () => {
136
+ const medias = new medias_1.Medias();
137
+ expect(medias).toBeInstanceOf(medias_1.Medias);
138
+ });
139
+ it('creates an instance with media attributes', () => {
140
+ const medias = new medias_1.Medias(undefined, makeMediaAttr());
141
+ expect(medias.Title).toBe('Test File');
142
+ expect(medias.ObjectType).toBe('Media');
143
+ });
144
+ it('throws when storage type is azure but container is missing', () => {
145
+ process.env.MEDIA_STORAGE_TYPE = 'azure';
146
+ delete process.env.MEDIA_AZUREBLOB_CONTAINER_NAME;
147
+ expect(() => new medias_1.Medias()).toThrow();
148
+ process.env.MEDIA_STORAGE_TYPE = 'local';
149
+ });
150
+ });
151
+ describe('createSaveLocation', () => {
152
+ it('returns local path when MEDIA_STORAGE_TYPE is local', () => {
153
+ const medias = new medias_1.Medias(undefined, makeMediaAttr());
154
+ const location = medias.createSaveLocation();
155
+ expect(location).toBe('/tmp/media-test/Media/obj-001');
156
+ });
157
+ it('throws when no storage path env var is set', () => {
158
+ const saved = process.env.MEDIA_LOCAL_STORAGE_PATH;
159
+ delete process.env.MEDIA_LOCAL_STORAGE_PATH;
160
+ const medias = new medias_1.Medias();
161
+ medias.ObjectType = 'Test';
162
+ medias.ObjectId = 'id';
163
+ expect(() => medias.createSaveLocation()).toThrow();
164
+ process.env.MEDIA_LOCAL_STORAGE_PATH = saved;
165
+ });
166
+ });
167
+ describe('encrypt', () => {
168
+ it('returns an encrypted buffer with iv', async () => {
169
+ const medias = new medias_1.Medias();
170
+ const plaintext = Buffer.from('hello world');
171
+ const result = await medias.encrypt(plaintext);
172
+ expect(result.isEncrypted).toBe(true);
173
+ expect(result.buffer).not.toEqual(plaintext);
174
+ expect(result.iv).toHaveLength(16);
175
+ });
176
+ it('throws when MEDIA_ENCRYPT_KEY is not set', async () => {
177
+ const saved = process.env.MEDIA_ENCRYPT_KEY;
178
+ delete process.env.MEDIA_ENCRYPT_KEY;
179
+ const medias = new medias_1.Medias();
180
+ await expect(medias.encrypt(Buffer.from('test'))).rejects.toThrow();
181
+ process.env.MEDIA_ENCRYPT_KEY = saved;
182
+ });
183
+ });
184
+ describe('decrypt', () => {
185
+ it('round-trips correctly with encrypt', async () => {
186
+ const medias = new medias_1.Medias();
187
+ const plaintext = Buffer.from('secret message');
188
+ const encrypted = await medias.encrypt(plaintext);
189
+ const decrypted = await medias.decrypt(encrypted);
190
+ expect(decrypted.buffer.toString()).toBe('secret message');
191
+ expect(decrypted.isEncrypted).toBe(false);
192
+ });
193
+ });
194
+ describe('getAll', () => {
195
+ it('returns paginated results', async () => {
196
+ const medias = new medias_1.Medias();
197
+ const result = await medias.getAll(10, 1, '');
198
+ expect(result).toEqual({ count: 1, rows: expect.any(Array) });
199
+ expect(mockRepoMethods.findAndCountAll).toHaveBeenCalled();
200
+ });
201
+ it('applies search filter when search string is provided', async () => {
202
+ const medias = new medias_1.Medias();
203
+ await medias.getAll(10, 1, '{"Title":"test"}');
204
+ expect(mockRepoMethods.findAndCountAll).toHaveBeenCalledWith(expect.objectContaining({ where: expect.any(Object) }));
205
+ });
206
+ it('throws BadRequestException for invalid search JSON', async () => {
207
+ const medias = new medias_1.Medias();
208
+ await expect(medias.getAll(10, 1, '{bad json')).rejects.toThrow();
209
+ });
210
+ });
211
+ describe('getOne', () => {
212
+ it('returns the media model when found', async () => {
213
+ const medias = new medias_1.Medias();
214
+ const result = await medias.getOne('media-001');
215
+ expect(result).toBeDefined();
216
+ });
217
+ it('throws NotFoundException when not found', async () => {
218
+ mockRepoMethods.findOne.mockResolvedValue(null);
219
+ const medias = new medias_1.Medias();
220
+ await expect(medias.getOne('missing-id')).rejects.toThrow();
221
+ });
222
+ });
223
+ describe('getFile', () => {
224
+ it('returns file buffer and response options for a local unencrypted file', async () => {
225
+ const fileContent = Buffer.from('file-data');
226
+ const stream = stream_1.Readable.from([fileContent]);
227
+ mockedFs.createReadStream = jest.fn().mockReturnValue(stream);
228
+ const medias = new medias_1.Medias();
229
+ const result = await medias.getFile('media-001');
230
+ expect(result).toHaveProperty('fileBuffer');
231
+ expect(result).toHaveProperty('resOption');
232
+ expect(result.resOption['Content-Type']).toBe('application/octet-stream');
233
+ });
234
+ it('throws NotFoundException when media record is not found', async () => {
235
+ mockRepoMethods.findOne.mockResolvedValue(null);
236
+ const medias = new medias_1.Medias();
237
+ await expect(medias.getFile('missing-id')).rejects.toThrow();
238
+ });
239
+ });
240
+ describe('postExternal', () => {
241
+ it('creates an external media record', async () => {
242
+ const loginUser = makeLoginUser();
243
+ const dto = {
244
+ ObjectId: 'obj-001',
245
+ ObjectType: 'Rental',
246
+ Title: 'External Image',
247
+ Description: 'Hosted externally',
248
+ Type: medias_enum_1.MediaType.Photo,
249
+ IsEncryptedYN: 'N',
250
+ ExternalSource: 'http://example.com/img.jpg',
251
+ URL: 'http://example.com/img.jpg',
252
+ };
253
+ const medias = new medias_1.Medias();
254
+ const result = await medias.postExternal(dto, loginUser);
255
+ expect(result.IsExternalYN).toBe('Y');
256
+ expect(result.MediaId).toBeDefined();
257
+ });
258
+ });
259
+ describe('postInternal', () => {
260
+ it('creates an internal media record for local storage', async () => {
261
+ const loginUser = makeLoginUser();
262
+ const fileStream = { buffer: Buffer.from('file-bytes') };
263
+ const dto = {
264
+ ObjectId: 'obj-001',
265
+ ObjectType: 'Rental',
266
+ Title: 'Internal File',
267
+ Description: 'Stored locally',
268
+ Type: medias_enum_1.MediaType.Document,
269
+ IsEncryptedYN: 'N',
270
+ FileName: 'report',
271
+ FileExtension: 'pdf',
272
+ };
273
+ mockedFs.exists = jest.fn((_p, cb) => cb(null, true));
274
+ mockedFs.writeFile = jest.fn((_p, _d, cb) => cb(null));
275
+ const medias = new medias_1.Medias();
276
+ const result = await medias.postInternal(fileStream, dto, loginUser);
277
+ expect(result).toBeDefined();
278
+ expect(mockRepoMethods.create).toHaveBeenCalled();
279
+ });
280
+ });
281
+ describe('remove', () => {
282
+ it('deletes the media and returns success message', async () => {
283
+ mockedFs.existsSync = jest.fn().mockReturnValue(false);
284
+ const medias = new medias_1.Medias();
285
+ const loginUser = makeLoginUser();
286
+ const result = await medias.remove('media-001', loginUser);
287
+ expect(result).toEqual({ message: 'Media has been deleted.' });
288
+ });
289
+ it('throws NotFoundException when media is not found', async () => {
290
+ mockRepoMethods.findOne.mockResolvedValue(null);
291
+ const medias = new medias_1.Medias();
292
+ await expect(medias.remove('bad-id', makeLoginUser())).rejects.toThrow();
293
+ });
294
+ });
295
+ describe('putExternal', () => {
296
+ it('updates an external media record', async () => {
297
+ const nullUpdateModel = Object.assign(Object.assign({}, makeMockModel()), { update: jest.fn().mockResolvedValue(null) });
298
+ mockRepoMethods.findOne.mockResolvedValue(nullUpdateModel);
299
+ const medias = new medias_1.Medias();
300
+ const result = await medias.putExternal('media-001', { Title: 'Updated Title' }, 'user-001');
301
+ expect(result).toBeNull();
302
+ });
303
+ it('throws NotFoundException when not found', async () => {
304
+ mockRepoMethods.findOne.mockResolvedValue(null);
305
+ const medias = new medias_1.Medias();
306
+ await expect(medias.putExternal('bad-id', {}, 'user-001')).rejects.toThrow();
307
+ });
308
+ });
309
+ describe('putInternal', () => {
310
+ it('updates an internal media record for local storage', async () => {
311
+ const loginUser = makeLoginUser();
312
+ const fileStream = { buffer: Buffer.from('updated-bytes') };
313
+ mockedFs.exists = jest.fn((_p, cb) => cb(null, true));
314
+ mockedFs.unlinkSync = jest.fn();
315
+ mockedFs.writeFile = jest.fn((_p, _d, cb) => cb(null));
316
+ const medias = new medias_1.Medias();
317
+ const result = await medias.putInternal(fileStream, 'media-001', { FileName: 'newfile', FileExtension: 'pdf' }, loginUser);
318
+ expect(result).toBeDefined();
319
+ });
320
+ it('throws NotFoundException when not found', async () => {
321
+ mockRepoMethods.findOne.mockResolvedValue(null);
322
+ const medias = new medias_1.Medias();
323
+ await expect(medias.putInternal({}, 'bad-id', {}, makeLoginUser())).rejects.toThrow();
324
+ });
325
+ });
326
+ describe('findFile via Azure storage', () => {
327
+ beforeEach(() => {
328
+ process.env.MEDIA_STORAGE_TYPE = 'azure';
329
+ process.env.MEDIA_AZUREBLOB_CONTAINER_NAME = 'test-container';
330
+ });
331
+ afterEach(() => {
332
+ process.env.MEDIA_STORAGE_TYPE = 'local';
333
+ delete process.env.MEDIA_AZUREBLOB_CONTAINER_NAME;
334
+ });
335
+ it('downloads a file from Azure blob storage', async () => {
336
+ const fileBuffer = Buffer.from('azure-file-content');
337
+ const readable = stream_1.Readable.from([fileBuffer]);
338
+ mockDownload.mockResolvedValue({ readableStreamBody: readable });
339
+ const medias = new medias_1.Medias(undefined, makeMediaAttr({ URL: '/azure/Rental/obj-001' }));
340
+ medias.IsEncryptedYN = 'N';
341
+ const result = await medias.findFile();
342
+ expect(result).toBeInstanceOf(Buffer);
343
+ expect(mockGetContainerClient).toHaveBeenCalled();
344
+ });
345
+ });
346
+ });
347
+ //# sourceMappingURL=medias.spec.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"medias.spec.js","sourceRoot":"","sources":["../../src/__tests__/medias.spec.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,130 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ jest.mock('@nestjs/common', () => ({
4
+ BadRequestException: class BadRequestException extends Error {
5
+ constructor(message) {
6
+ super(message);
7
+ this.name = 'BadRequestException';
8
+ }
9
+ },
10
+ Injectable: () => (target) => target,
11
+ PipeTransform: class {
12
+ },
13
+ }));
14
+ jest.mock('class-validator', () => ({
15
+ isDefined: (v) => v !== undefined && v !== null,
16
+ isEnum: (value, entity) => Object.values(entity).includes(value),
17
+ }));
18
+ jest.mock('@paralleldrive/cuid2', () => ({
19
+ createId: jest.fn().mockReturnValue('generated-cuid'),
20
+ isCuid: jest.fn((v) => v === 'valid-cuid-value'),
21
+ }));
22
+ const append_id_pipe_1 = require("../pipe/append-id.pipe");
23
+ const validate_enum_pipe_1 = require("../pipe/validate-enum.pipe");
24
+ const validate_id_pipe_1 = require("../pipe/validate-id.pipe");
25
+ const validate_search_pipe_1 = require("../pipe/validate-search.pipe");
26
+ var TestEnum;
27
+ (function (TestEnum) {
28
+ TestEnum["Photo"] = "Photo";
29
+ TestEnum["Video"] = "Video";
30
+ TestEnum["Document"] = "Document";
31
+ })(TestEnum || (TestEnum = {}));
32
+ describe('AppendIdPipe', () => {
33
+ let pipe;
34
+ beforeEach(() => {
35
+ pipe = new append_id_pipe_1.AppendIdPipe('MediaId');
36
+ });
37
+ it('appends the named id field to the value', () => {
38
+ const result = pipe.transform({ Title: 'Test' });
39
+ expect(result).toEqual({ Title: 'Test', MediaId: 'generated-cuid' });
40
+ });
41
+ it('preserves existing fields', () => {
42
+ const result = pipe.transform({ a: 1, b: 2 });
43
+ expect(result.a).toBe(1);
44
+ expect(result.b).toBe(2);
45
+ expect(result.MediaId).toBe('generated-cuid');
46
+ });
47
+ it('works with an empty object', () => {
48
+ const result = pipe.transform({});
49
+ expect(result).toHaveProperty('MediaId', 'generated-cuid');
50
+ });
51
+ });
52
+ describe('ValidateEnumPipe', () => {
53
+ let pipe;
54
+ beforeEach(() => {
55
+ pipe = new validate_enum_pipe_1.ValidateEnumPipe(TestEnum);
56
+ });
57
+ it('returns the enum value when valid', () => {
58
+ const result = pipe.transform('Photo');
59
+ expect(result).toBe('Photo');
60
+ });
61
+ it('throws BadRequestException for an invalid enum value', () => {
62
+ expect(() => pipe.transform('Invalid')).toThrow();
63
+ });
64
+ it('returns the original value when undefined', () => {
65
+ const result = pipe.transform(undefined);
66
+ expect(result).toBeUndefined();
67
+ });
68
+ it('validates each item when value is an array', () => {
69
+ const result = pipe.transform(['Photo', 'Video']);
70
+ expect(result).toEqual(['Photo', 'Video']);
71
+ });
72
+ it('throws when an array contains an invalid value', () => {
73
+ expect(() => pipe.transform(['Photo', 'Bad'])).toThrow();
74
+ });
75
+ });
76
+ describe('ValidateIdPipe', () => {
77
+ let pipe;
78
+ beforeEach(() => {
79
+ pipe = new validate_id_pipe_1.ValidateIdPipe();
80
+ });
81
+ it('passes through a valid cuid', () => {
82
+ const result = pipe.transform('valid-cuid-value');
83
+ expect(result).toBe('valid-cuid-value');
84
+ });
85
+ it('throws BadRequestException for an invalid id', () => {
86
+ expect(() => pipe.transform('not-a-cuid')).toThrow();
87
+ });
88
+ it('passes through when value is falsy (optional id)', () => {
89
+ const result = pipe.transform(undefined);
90
+ expect(result).toBeUndefined();
91
+ });
92
+ it('uses a custom error message', () => {
93
+ const customPipe = new validate_id_pipe_1.ValidateIdPipe('Custom error');
94
+ try {
95
+ customPipe.transform('not-a-cuid');
96
+ }
97
+ catch (e) {
98
+ expect(e.message).toBe('Custom error');
99
+ }
100
+ });
101
+ });
102
+ describe('ValidateSearchPipe', () => {
103
+ const mockModel = {
104
+ tableAttributes: { MediaId: {}, Title: {}, Type: {} },
105
+ };
106
+ let pipe;
107
+ beforeEach(() => {
108
+ pipe = new validate_search_pipe_1.ValidateSearchPipe(mockModel);
109
+ });
110
+ it('returns value when search is valid JSON with valid keys', () => {
111
+ const search = JSON.stringify({ Title: 'test' });
112
+ expect(pipe.transform(search)).toBe(search);
113
+ });
114
+ it('returns undefined when value is falsy', () => {
115
+ expect(pipe.transform(undefined)).toBeUndefined();
116
+ });
117
+ it('throws BadRequestException for invalid JSON', () => {
118
+ expect(() => pipe.transform('{bad json')).toThrow();
119
+ });
120
+ it('throws BadRequestException for unknown search key', () => {
121
+ const search = JSON.stringify({ UnknownField: 'value' });
122
+ expect(() => pipe.transform(search)).toThrow();
123
+ });
124
+ it('allows additionalAttributes alongside model attributes', () => {
125
+ const pipeWithExtra = new validate_search_pipe_1.ValidateSearchPipe(mockModel, ['ExtraField']);
126
+ const search = JSON.stringify({ ExtraField: 'value' });
127
+ expect(pipeWithExtra.transform(search)).toBe(search);
128
+ });
129
+ });
130
+ //# sourceMappingURL=pipes.spec.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pipes.spec.js","sourceRoot":"","sources":["../../src/__tests__/pipes.spec.ts"],"names":[],"mappings":"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"}
package/dist/medias.d.ts CHANGED
@@ -1,4 +1,3 @@
1
- import { BlobServiceClient } from '@azure/storage-blob';
2
1
  import { CommonService } from './common/common.service';
3
2
  import { BaseMedias } from './base/base.medias';
4
3
  import { MediasModel } from './entities/medias.entity';
@@ -16,7 +15,8 @@ export declare class Medias extends BaseMedias {
16
15
  TableName: string;
17
16
  ObjectId: string;
18
17
  ObjectType: string;
19
- blobServiceClient: BlobServiceClient;
18
+ private _blobServiceClient;
19
+ private get blobServiceClient();
20
20
  container: string;
21
21
  algorithm: string;
22
22
  commonService: CommonService;
package/dist/medias.js CHANGED
@@ -25,10 +25,16 @@ const sequelize_1 = require("sequelize");
25
25
  const activity_history_1 = require("@tomei/activity-history");
26
26
  const medias_repository_1 = require("./medias.repository");
27
27
  class Medias extends base_medias_1.BaseMedias {
28
+ get blobServiceClient() {
29
+ if (!this._blobServiceClient) {
30
+ this._blobServiceClient = storage_blob_1.BlobServiceClient.fromConnectionString(process.env.AZURE_STORAGE_CONNECTION_STRING);
31
+ }
32
+ return this._blobServiceClient;
33
+ }
28
34
  constructor(commonService, media) {
29
35
  super(media);
30
36
  this.ObjectType = 'Media';
31
- this.blobServiceClient = storage_blob_1.BlobServiceClient.fromConnectionString(process.env.AZURE_STORAGE_CONNECTION_STRING);
37
+ this._blobServiceClient = null;
32
38
  this.algorithm = 'aes-256-cbc';
33
39
  this.entity = typeof medias_entity_1.MediasModel;
34
40
  this.commonService = commonService;
@@ -1 +1 @@
1
- {"version":3,"file":"medias.js","sourceRoot":"","sources":["../src/medias.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"medias.js","sourceRoot":"","sources":["../src/medias.ts"],"names":[],"mappings":"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"}