@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,160 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ jest.mock('@nestjs/config', () => ({
4
+ ConfigService: jest.fn().mockImplementation(() => ({
5
+ get: jest.fn().mockReturnValue('http://localhost:3000'),
6
+ })),
7
+ }));
8
+ jest.mock('@nestjs/common', () => ({
9
+ Injectable: () => (target) => target,
10
+ HttpException: class HttpException extends Error {
11
+ constructor(response, status) {
12
+ super(typeof response === 'string' ? response : JSON.stringify(response));
13
+ this.response = response;
14
+ this.status = status;
15
+ }
16
+ },
17
+ InternalServerErrorException: class InternalServerErrorException extends Error {
18
+ constructor(message) {
19
+ super(message);
20
+ }
21
+ },
22
+ }));
23
+ jest.mock('axios');
24
+ jest.mock('lodash', () => ({
25
+ omit: jest.fn((obj, keys) => {
26
+ const result = Object.assign({}, obj);
27
+ keys.forEach((k) => delete result[k]);
28
+ return result;
29
+ }),
30
+ omitBy: jest.fn((obj, fn) => obj),
31
+ keys: jest.fn((obj) => Object.keys(obj)),
32
+ pick: jest.fn((obj, keys) => {
33
+ const result = {};
34
+ keys.forEach((k) => {
35
+ if (k in obj)
36
+ result[k] = obj[k];
37
+ });
38
+ return result;
39
+ }),
40
+ }));
41
+ jest.mock('@paralleldrive/cuid2', () => ({
42
+ createId: jest.fn().mockReturnValue('new-cuid'),
43
+ }));
44
+ const axios_1 = require("axios");
45
+ const common_service_1 = require("../common/common.service");
46
+ const mockAxios = axios_1.default;
47
+ const mockConfigService = {
48
+ get: jest.fn().mockReturnValue('http://localhost:3000'),
49
+ };
50
+ describe('CommonService', () => {
51
+ let service;
52
+ beforeEach(() => {
53
+ jest.clearAllMocks();
54
+ service = new common_service_1.CommonService(mockConfigService);
55
+ });
56
+ describe('handleAxiosError', () => {
57
+ it('throws HttpException when error has a response', () => {
58
+ const err = { response: { data: 'Bad Request', status: 400 } };
59
+ expect(() => service.handleAxiosError(err)).toThrow();
60
+ });
61
+ it('throws HttpException when error has a request but no response', () => {
62
+ const err = { request: 'timeout' };
63
+ expect(() => service.handleAxiosError(err)).toThrow();
64
+ });
65
+ it('throws InternalServerErrorException for generic errors', () => {
66
+ const err = { message: 'Something went wrong' };
67
+ expect(() => service.handleAxiosError(err)).toThrow();
68
+ });
69
+ });
70
+ describe('addActivityHistory', () => {
71
+ it('posts activity and returns EntityId', async () => {
72
+ mockAxios.post = jest
73
+ .fn()
74
+ .mockResolvedValue({ data: { EntityId: 'entity-123' } });
75
+ const record = {
76
+ Action: 'Insert',
77
+ EntityValueBefore: {},
78
+ EntityValueAfter: {
79
+ Title: 'Test',
80
+ CreatedById: 'u1',
81
+ CreatedAt: new Date(),
82
+ },
83
+ PerformedById: 'user-001',
84
+ EntityId: 'entity-001',
85
+ };
86
+ const result = await service.addActivityHistory(record, 'Media', 'create');
87
+ expect(result).toBe('entity-123');
88
+ expect(mockAxios.post).toHaveBeenCalledWith('http://localhost:3000/activity-histories', expect.objectContaining({ EntityId: 'entity-001' }));
89
+ });
90
+ it('uses update activity label for update method', async () => {
91
+ mockAxios.post = jest
92
+ .fn()
93
+ .mockResolvedValue({ data: { EntityId: 'e2' } });
94
+ const record = {
95
+ EntityValueBefore: { Title: 'Old' },
96
+ EntityValueAfter: { Title: 'New' },
97
+ PerformedById: 'user-001',
98
+ EntityId: 'entity-002',
99
+ };
100
+ await service.addActivityHistory(record, 'Media', 'update');
101
+ expect(mockAxios.post).toHaveBeenCalledWith(expect.any(String), expect.objectContaining({ Action: 'Update' }));
102
+ });
103
+ it('calls handleAxiosError when axios throws', async () => {
104
+ const axiosError = { response: { data: 'Error', status: 500 } };
105
+ mockAxios.post = jest.fn().mockRejectedValue(axiosError);
106
+ const record = {
107
+ EntityValueBefore: {},
108
+ EntityValueAfter: {},
109
+ PerformedById: 'u1',
110
+ EntityId: 'e1',
111
+ };
112
+ await expect(service.addActivityHistory(record, 'Media', 'create')).rejects.toThrow();
113
+ });
114
+ });
115
+ describe('getList', () => {
116
+ it('returns rows from the response', async () => {
117
+ mockAxios.get = jest
118
+ .fn()
119
+ .mockResolvedValue({ data: { rows: ['item1', 'item2'] } });
120
+ const result = await service.getList('MediaTypes');
121
+ expect(result).toEqual(['item1', 'item2']);
122
+ expect(mockAxios.get).toHaveBeenCalledWith('http://localhost:3000/lists/items', expect.objectContaining({ params: { ListName: 'MediaTypes' } }));
123
+ });
124
+ it('calls handleAxiosError when axios throws', async () => {
125
+ mockAxios.get = jest
126
+ .fn()
127
+ .mockRejectedValue({ response: { data: 'err', status: 500 } });
128
+ await expect(service.getList('Any')).rejects.toThrow();
129
+ });
130
+ });
131
+ describe('addFieldTranslation', () => {
132
+ it('posts field translation', async () => {
133
+ mockAxios.post = jest.fn().mockResolvedValue({});
134
+ const payload = { field: 'Title', value: 'Tajuk' };
135
+ await service.addFieldTranslation(payload);
136
+ expect(mockAxios.post).toHaveBeenCalledWith('http://localhost:3000/field-translations', payload);
137
+ });
138
+ it('calls handleAxiosError when axios throws', async () => {
139
+ mockAxios.post = jest.fn().mockRejectedValue({ message: 'fail' });
140
+ await expect(service.addFieldTranslation({})).rejects.toThrow();
141
+ });
142
+ });
143
+ describe('getMedia', () => {
144
+ it('returns rows from the response', async () => {
145
+ mockAxios.get = jest
146
+ .fn()
147
+ .mockResolvedValue({ data: { rows: [{ MediaId: 'm1' }] } });
148
+ const result = await service.getMedia({
149
+ ObjectId: 'obj1',
150
+ ObjectType: 'Rental',
151
+ });
152
+ expect(result).toEqual([{ MediaId: 'm1' }]);
153
+ });
154
+ it('calls handleAxiosError when axios throws', async () => {
155
+ mockAxios.get = jest.fn().mockRejectedValue({ message: 'fail' });
156
+ await expect(service.getMedia({})).rejects.toThrow();
157
+ });
158
+ });
159
+ });
160
+ //# sourceMappingURL=common.service.spec.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"common.service.spec.js","sourceRoot":"","sources":["../../src/__tests__/common.service.spec.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,140 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ jest.mock('@nestjs/swagger', () => ({
4
+ ApiProperty: () => () => { },
5
+ ApiPropertyOptional: () => () => { },
6
+ }));
7
+ jest.mock('sequelize-typescript', () => {
8
+ var _a;
9
+ return ({
10
+ Table: () => () => { },
11
+ Column: () => () => { },
12
+ Model: (_a = class Model {
13
+ constructor() {
14
+ this.get = jest.fn();
15
+ this.update = jest.fn();
16
+ this.destroy = jest.fn();
17
+ }
18
+ },
19
+ _a.findByPk = jest.fn(),
20
+ _a.findOne = jest.fn(),
21
+ _a.findAll = jest.fn(),
22
+ _a.findAndCountAll = jest.fn(),
23
+ _a.create = jest.fn(),
24
+ _a),
25
+ DataType: {
26
+ STRING: 'STRING',
27
+ TEXT: 'TEXT',
28
+ DATE: 'DATE',
29
+ BOOLEAN: 'BOOLEAN',
30
+ ENUM: () => 'ENUM',
31
+ },
32
+ PrimaryKey: () => () => { },
33
+ ForeignKey: () => () => { },
34
+ BelongsTo: () => () => { },
35
+ HasMany: () => () => { },
36
+ CreatedAt: () => () => { },
37
+ UpdatedAt: () => () => { },
38
+ Default: () => () => { },
39
+ AllowNull: () => () => { },
40
+ });
41
+ });
42
+ jest.mock('sequelize', () => ({
43
+ Op: { substring: Symbol('Op.substring') },
44
+ DataTypes: {},
45
+ }));
46
+ jest.mock('@tomei/general', () => ({
47
+ RepositoryBase: class RepositoryBase {
48
+ constructor(_model) { }
49
+ },
50
+ IRepositoryBase: {},
51
+ }));
52
+ const medias_repository_1 = require("../medias.repository");
53
+ const medias_entity_1 = require("../entities/medias.entity");
54
+ const mockModel = {
55
+ MediaId: 'media-001',
56
+ get: jest.fn().mockReturnValue({}),
57
+ update: jest.fn(),
58
+ destroy: jest.fn(),
59
+ };
60
+ describe('MediasRepository', () => {
61
+ let repo;
62
+ beforeEach(() => {
63
+ jest.clearAllMocks();
64
+ repo = new medias_repository_1.MediasRepository();
65
+ });
66
+ describe('findByPk', () => {
67
+ it('returns a MediasModel when found', async () => {
68
+ medias_entity_1.MediasModel.findOne.mockResolvedValue(mockModel);
69
+ const result = await repo.findByPk('media-001', undefined);
70
+ expect(result).toBe(mockModel);
71
+ expect(medias_entity_1.MediasModel.findOne).toHaveBeenCalledWith({
72
+ where: { MediaId: 'media-001' },
73
+ transaction: undefined,
74
+ });
75
+ });
76
+ it('passes the transaction option', async () => {
77
+ const tx = { id: 'tx-1' };
78
+ medias_entity_1.MediasModel.findOne.mockResolvedValue(mockModel);
79
+ await repo.findByPk('media-001', tx);
80
+ expect(medias_entity_1.MediasModel.findOne).toHaveBeenCalledWith({
81
+ where: { MediaId: 'media-001' },
82
+ transaction: tx,
83
+ });
84
+ });
85
+ it('returns null when record is not found', async () => {
86
+ medias_entity_1.MediasModel.findOne.mockResolvedValue(null);
87
+ const result = await repo.findByPk('missing-id', undefined);
88
+ expect(result).toBeNull();
89
+ });
90
+ it('throws when the database call fails', async () => {
91
+ medias_entity_1.MediasModel.findOne.mockRejectedValue(new Error('DB error'));
92
+ await expect(repo.findByPk('media-001', undefined)).rejects.toThrow('DB error');
93
+ });
94
+ });
95
+ describe('delete', () => {
96
+ it('destroys the record by MediaId', async () => {
97
+ medias_entity_1.MediasModel.destroy = jest.fn().mockResolvedValue(1);
98
+ await repo.delete('media-001');
99
+ expect(medias_entity_1.MediasModel.destroy).toHaveBeenCalledWith(expect.objectContaining({
100
+ where: expect.objectContaining({ MediaId: 'media-001' }),
101
+ }));
102
+ });
103
+ it('passes the transaction option', async () => {
104
+ const tx = { id: 'tx-2' };
105
+ medias_entity_1.MediasModel.destroy = jest.fn().mockResolvedValue(1);
106
+ await repo.delete('media-001', tx);
107
+ expect(medias_entity_1.MediasModel.destroy).toHaveBeenCalledWith(expect.objectContaining({ transaction: tx }));
108
+ });
109
+ it('throws when the database call fails', async () => {
110
+ medias_entity_1.MediasModel.destroy = jest
111
+ .fn()
112
+ .mockRejectedValue(new Error('Delete failed'));
113
+ await expect(repo.delete('media-001')).rejects.toThrow('Delete failed');
114
+ });
115
+ });
116
+ describe('findAndCountAll', () => {
117
+ it('returns count and rows with options', async () => {
118
+ const mockResult = { count: 2, rows: [mockModel, mockModel] };
119
+ medias_entity_1.MediasModel.findAndCountAll.mockResolvedValue(mockResult);
120
+ const result = await repo.findAndCountAll({ limit: 10, offset: 0 });
121
+ expect(result).toEqual(mockResult);
122
+ expect(medias_entity_1.MediasModel.findAndCountAll).toHaveBeenCalledWith({
123
+ limit: 10,
124
+ offset: 0,
125
+ });
126
+ });
127
+ it('returns all records when no options are given', async () => {
128
+ const mockResult = { count: 1, rows: [mockModel] };
129
+ medias_entity_1.MediasModel.findAndCountAll.mockResolvedValue(mockResult);
130
+ const result = await repo.findAndCountAll(undefined);
131
+ expect(result).toEqual(mockResult);
132
+ expect(medias_entity_1.MediasModel.findAndCountAll).toHaveBeenCalledWith();
133
+ });
134
+ it('throws when the database call fails', async () => {
135
+ medias_entity_1.MediasModel.findAndCountAll.mockRejectedValue(new Error('Query failed'));
136
+ await expect(repo.findAndCountAll({ limit: 5 })).rejects.toThrow();
137
+ });
138
+ });
139
+ });
140
+ //# sourceMappingURL=medias.repository.spec.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"medias.repository.spec.js","sourceRoot":"","sources":["../../src/__tests__/medias.repository.spec.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ export {};