cat-documents-ng 1.0.6 → 1.0.7
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.
- package/README.md +322 -322
- package/Shared/components/confirmation-dialog/confirmation-dialog.component.d.ts +44 -0
- package/Shared/components/table-primary/table-primary.component.d.ts +31 -0
- package/Shared/components/table-primary/table-primary.model.d.ts +19 -0
- package/Shared/constant/ERROR.d.ts +52 -0
- package/Shared/constant/SHARED.d.ts +546 -0
- package/{src/Shared/constant/URLS.ts → Shared/constant/URLS.d.ts} +25 -31
- package/Shared/services/app-config.service.d.ts +51 -0
- package/{src/Shared/services/global-error.handler.ts → Shared/services/global-error.handler.d.ts} +9 -11
- package/Shared/services/session.service.d.ts +46 -0
- package/Shared/shared.module.d.ts +14 -0
- package/fesm2022/cat-documents-ng.mjs +11405 -0
- package/fesm2022/cat-documents-ng.mjs.map +1 -0
- package/index.d.ts +5 -0
- package/lib/document/components/document-actions/document-actions.component.d.ts +78 -0
- package/lib/document/components/document-container/document-container.component.d.ts +162 -0
- package/lib/document/components/document-content-viewer/document-content-viewer.component.d.ts +291 -0
- package/lib/document/components/document-history/document-history.component.d.ts +160 -0
- package/lib/document/components/document-list/document-list.component.d.ts +299 -0
- package/lib/document/components/document-list-item/document-list-item.component.d.ts +28 -0
- package/lib/document/components/document-search/document-search.component.d.ts +77 -0
- package/lib/document/components/document-status/document-status.component.d.ts +24 -0
- package/lib/document/components/document-upload/document-upload.component.d.ts +321 -0
- package/lib/document/components/document-viewer/document-viewer.component.d.ts +137 -0
- package/lib/document/components/document-zoom-controls/document-zoom-controls.component.d.ts +33 -0
- package/lib/document/components/documents-menu/documents-menu.component.d.ts +110 -0
- package/{src/lib/document/components/folder-block/folder-block.component.ts → lib/document/components/folder-block/folder-block.component.d.ts} +12 -28
- package/lib/document/components/folder-container/folder-container.component.d.ts +162 -0
- package/lib/document/components/linked-document/linked-document.component.d.ts +39 -0
- package/lib/document/components/request-document/request-document.component.d.ts +69 -0
- package/lib/document/components/sidebar/sidebar.component.d.ts +109 -0
- package/lib/document/components/user-list/user-list.component.d.ts +34 -0
- package/lib/document/constant/DOCUMENT_HISTORY.d.ts +41 -0
- package/lib/document/directives/document.directive.d.ts +20 -0
- package/lib/document/directives/permission.directive.d.ts +38 -0
- package/lib/document/document.module.d.ts +60 -0
- package/{src/lib/document/models/document-alert.model.ts → lib/document/models/document-alert.model.d.ts} +4 -11
- package/lib/document/models/document-category.model.d.ts +24 -0
- package/lib/document/models/document-history.model.d.ts +94 -0
- package/lib/document/models/document-list-response.model.d.ts +33 -0
- package/lib/document/models/document-type.model.d.ts +37 -0
- package/lib/document/models/document.model.d.ts +44 -0
- package/{src/lib/document/models/folder.model.ts → lib/document/models/folder.model.d.ts} +4 -10
- package/lib/document/models/status-data.model.d.ts +27 -0
- package/lib/document/models/uploaded-file-response.model.d.ts +7 -0
- package/lib/document/models/user-list.model.d.ts +8 -0
- package/lib/document/services/csv-parser.service.d.ts +88 -0
- package/lib/document/services/document-actions.service.d.ts +48 -0
- package/lib/document/services/document-content-type.service.d.ts +85 -0
- package/lib/document/services/document-history-style.service.d.ts +34 -0
- package/lib/document/services/document-history.service.d.ts +42 -0
- package/lib/document/services/document-http.service.d.ts +179 -0
- package/lib/document/services/document-list.service.d.ts +74 -0
- package/lib/document/services/document-menu.service.d.ts +122 -0
- package/lib/document/services/document-scroll.service.d.ts +55 -0
- package/lib/document/services/document-table-builder.service.d.ts +38 -0
- package/lib/document/services/document-upload-business.service.d.ts +107 -0
- package/lib/document/services/document-upload-data.service.d.ts +40 -0
- package/lib/document/services/document-upload-form.service.d.ts +41 -0
- package/lib/document/services/document-upload.service.d.ts +99 -0
- package/lib/document/services/document-viewer.service.d.ts +97 -0
- package/lib/document/services/document-zoom.service.d.ts +81 -0
- package/lib/document/services/document.service.d.ts +161 -0
- package/lib/document/services/eml-parser.service.d.ts +116 -0
- package/lib/document/services/excel-parser.service.d.ts +169 -0
- package/lib/document/services/file-format.service.d.ts +34 -0
- package/lib/document/services/status-calculator.service.d.ts +20 -0
- package/lib/document/services/user-list.service.d.ts +29 -0
- package/lib/document/state/document.query.d.ts +243 -0
- package/{src/lib/document/state/document.service.ts → lib/document/state/document.service.d.ts} +15 -46
- package/lib/document/state/document.state.d.ts +61 -0
- package/lib/document/state/document.store.d.ts +56 -0
- package/package.json +11 -5
- package/{src/public-api.ts → public-api.d.ts} +0 -4
- package/ng-package.json +0 -10
- package/src/Shared/components/confirmation-dialog/confirmation-dialog.component.html +0 -3
- package/src/Shared/components/confirmation-dialog/confirmation-dialog.component.scss +0 -13
- package/src/Shared/components/confirmation-dialog/confirmation-dialog.component.spec.ts +0 -70
- package/src/Shared/components/confirmation-dialog/confirmation-dialog.component.ts +0 -133
- package/src/Shared/components/table-primary/table-primary.component.html +0 -66
- package/src/Shared/components/table-primary/table-primary.component.scss +0 -227
- package/src/Shared/components/table-primary/table-primary.component.spec.ts +0 -23
- package/src/Shared/components/table-primary/table-primary.component.ts +0 -143
- package/src/Shared/components/table-primary/table-primary.model.ts +0 -21
- package/src/Shared/constant/ERROR.ts +0 -55
- package/src/Shared/constant/PERMISSIONS.ts +0 -17
- package/src/Shared/constant/SHARED.ts +0 -936
- package/src/Shared/services/app-config.service.spec.ts +0 -19
- package/src/Shared/services/app-config.service.ts +0 -73
- package/src/Shared/services/session.service.spec.ts +0 -16
- package/src/Shared/services/session.service.ts +0 -76
- package/src/Shared/shared.module.ts +0 -25
- package/src/lib/document/components/csv-viewer/csv-viewer.component.ts +0 -1
- package/src/lib/document/components/document-actions/document-actions.component.html +0 -59
- package/src/lib/document/components/document-actions/document-actions.component.scss +0 -362
- package/src/lib/document/components/document-actions/document-actions.component.spec.ts +0 -297
- package/src/lib/document/components/document-actions/document-actions.component.ts +0 -163
- package/src/lib/document/components/document-container/document-container.component.html +0 -36
- package/src/lib/document/components/document-container/document-container.component.scss +0 -144
- package/src/lib/document/components/document-container/document-container.component.spec.ts +0 -110
- package/src/lib/document/components/document-container/document-container.component.ts +0 -363
- package/src/lib/document/components/document-content-viewer/document-content-viewer.component.html +0 -332
- package/src/lib/document/components/document-content-viewer/document-content-viewer.component.scss +0 -1877
- package/src/lib/document/components/document-content-viewer/document-content-viewer.component.spec.ts +0 -258
- package/src/lib/document/components/document-content-viewer/document-content-viewer.component.ts +0 -664
- package/src/lib/document/components/document-history/document-history.component.html +0 -96
- package/src/lib/document/components/document-history/document-history.component.scss +0 -392
- package/src/lib/document/components/document-history/document-history.component.spec.ts +0 -93
- package/src/lib/document/components/document-history/document-history.component.ts +0 -373
- package/src/lib/document/components/document-list/document-list.component.html +0 -46
- package/src/lib/document/components/document-list/document-list.component.scss +0 -513
- package/src/lib/document/components/document-list/document-list.component.spec.ts +0 -486
- package/src/lib/document/components/document-list/document-list.component.ts +0 -682
- package/src/lib/document/components/document-list-item/document-list-item.component.html +0 -36
- package/src/lib/document/components/document-list-item/document-list-item.component.scss +0 -34
- package/src/lib/document/components/document-list-item/document-list-item.component.spec.ts +0 -75
- package/src/lib/document/components/document-list-item/document-list-item.component.ts +0 -40
- package/src/lib/document/components/document-search/document-search.component.html +0 -64
- package/src/lib/document/components/document-search/document-search.component.scss +0 -206
- package/src/lib/document/components/document-search/document-search.component.spec.ts +0 -82
- package/src/lib/document/components/document-search/document-search.component.ts +0 -163
- package/src/lib/document/components/document-status/document-status.component.html +0 -31
- package/src/lib/document/components/document-status/document-status.component.scss +0 -192
- package/src/lib/document/components/document-status/document-status.component.spec.ts +0 -23
- package/src/lib/document/components/document-status/document-status.component.ts +0 -87
- package/src/lib/document/components/document-upload/document-upload.component.html +0 -160
- package/src/lib/document/components/document-upload/document-upload.component.scss +0 -235
- package/src/lib/document/components/document-upload/document-upload.component.spec.ts +0 -95
- package/src/lib/document/components/document-upload/document-upload.component.ts +0 -668
- package/src/lib/document/components/document-viewer/document-viewer.component.html +0 -50
- package/src/lib/document/components/document-viewer/document-viewer.component.scss +0 -187
- package/src/lib/document/components/document-viewer/document-viewer.component.spec.ts +0 -79
- package/src/lib/document/components/document-viewer/document-viewer.component.ts +0 -261
- package/src/lib/document/components/document-zoom-controls/document-zoom-controls.component.html +0 -48
- package/src/lib/document/components/document-zoom-controls/document-zoom-controls.component.scss +0 -320
- package/src/lib/document/components/document-zoom-controls/document-zoom-controls.component.spec.ts +0 -59
- package/src/lib/document/components/document-zoom-controls/document-zoom-controls.component.ts +0 -150
- package/src/lib/document/components/documents-menu/documents-menu.component.html +0 -44
- package/src/lib/document/components/documents-menu/documents-menu.component.scss +0 -363
- package/src/lib/document/components/documents-menu/documents-menu.component.spec.ts +0 -23
- package/src/lib/document/components/documents-menu/documents-menu.component.ts +0 -316
- package/src/lib/document/components/folder-block/folder-block.component.html +0 -46
- package/src/lib/document/components/folder-block/folder-block.component.scss +0 -9
- package/src/lib/document/components/folder-block/folder-block.component.spec.ts +0 -70
- package/src/lib/document/components/folder-container/folder-container.component.html +0 -56
- package/src/lib/document/components/folder-container/folder-container.component.scss +0 -20
- package/src/lib/document/components/folder-container/folder-container.component.spec.ts +0 -27
- package/src/lib/document/components/folder-container/folder-container.component.ts +0 -328
- package/src/lib/document/components/linked-document/linked-document.component.html +0 -23
- package/src/lib/document/components/linked-document/linked-document.component.scss +0 -10
- package/src/lib/document/components/linked-document/linked-document.component.spec.ts +0 -61
- package/src/lib/document/components/linked-document/linked-document.component.ts +0 -49
- package/src/lib/document/components/request-document/request-document.component.html +0 -86
- package/src/lib/document/components/request-document/request-document.component.scss +0 -16
- package/src/lib/document/components/request-document/request-document.component.ts +0 -278
- package/src/lib/document/components/sidebar/sidebar.component.html +0 -75
- package/src/lib/document/components/sidebar/sidebar.component.scss +0 -157
- package/src/lib/document/components/sidebar/sidebar.component.spec.ts +0 -114
- package/src/lib/document/components/sidebar/sidebar.component.ts +0 -223
- package/src/lib/document/components/user-list/user-list.component.html +0 -33
- package/src/lib/document/components/user-list/user-list.component.scss +0 -118
- package/src/lib/document/components/user-list/user-list.component.spec.ts +0 -23
- package/src/lib/document/components/user-list/user-list.component.ts +0 -181
- package/src/lib/document/constant/DOCUMENT_HISTORY.ts +0 -52
- package/src/lib/document/directives/document.directive.ts +0 -32
- package/src/lib/document/directives/permission.directive.spec.ts +0 -0
- package/src/lib/document/directives/permission.directive.ts +0 -72
- package/src/lib/document/document.module.ts +0 -351
- package/src/lib/document/models/document-category.model.ts +0 -30
- package/src/lib/document/models/document-history.model.ts +0 -109
- package/src/lib/document/models/document-list-response.model.ts +0 -37
- package/src/lib/document/models/document-type.model.ts +0 -44
- package/src/lib/document/models/document.model.ts +0 -53
- package/src/lib/document/models/status-data.model.ts +0 -31
- package/src/lib/document/models/uploaded-file-response.model.ts +0 -7
- package/src/lib/document/models/user-list.model.ts +0 -10
- package/src/lib/document/services/csv-parser.service.spec.ts +0 -97
- package/src/lib/document/services/csv-parser.service.ts +0 -303
- package/src/lib/document/services/document-actions.service.ts +0 -125
- package/src/lib/document/services/document-content-type.service.ts +0 -193
- package/src/lib/document/services/document-history-style.service.ts +0 -138
- package/src/lib/document/services/document-history.service.ts +0 -129
- package/src/lib/document/services/document-http.service.spec.ts +0 -119
- package/src/lib/document/services/document-http.service.ts +0 -497
- package/src/lib/document/services/document-list.service.ts +0 -195
- package/src/lib/document/services/document-menu.service.ts +0 -277
- package/src/lib/document/services/document-scroll.service.ts +0 -138
- package/src/lib/document/services/document-severity.service.ts +0 -98
- package/src/lib/document/services/document-table-builder.service.ts +0 -82
- package/src/lib/document/services/document-upload-business.service.ts +0 -326
- package/src/lib/document/services/document-upload-data.service.ts +0 -82
- package/src/lib/document/services/document-upload-form.service.ts +0 -149
- package/src/lib/document/services/document-upload.service.spec.ts +0 -99
- package/src/lib/document/services/document-upload.service.ts +0 -209
- package/src/lib/document/services/document-viewer.service.ts +0 -279
- package/src/lib/document/services/document-zoom.service.spec.ts +0 -56
- package/src/lib/document/services/document-zoom.service.ts +0 -164
- package/src/lib/document/services/document.service.ts +0 -356
- package/src/lib/document/services/eml-parser.service.ts +0 -444
- package/src/lib/document/services/excel-parser.service.spec.ts +0 -66
- package/src/lib/document/services/excel-parser.service.ts +0 -483
- package/src/lib/document/services/file-format.service.spec.ts +0 -16
- package/src/lib/document/services/file-format.service.ts +0 -63
- package/src/lib/document/services/status-calculator.service.ts +0 -44
- package/src/lib/document/services/user-list.service.ts +0 -77
- package/src/lib/document/state/document.query.ts +0 -378
- package/src/lib/document/state/document.state.ts +0 -100
- package/src/lib/document/state/document.store.ts +0 -200
- package/tsconfig.lib.json +0 -15
- package/tsconfig.lib.prod.json +0 -11
- package/tsconfig.spec.json +0 -15
|
@@ -1,193 +0,0 @@
|
|
|
1
|
-
import { Injectable } from '@angular/core';
|
|
2
|
-
|
|
3
|
-
/**
|
|
4
|
-
* Service for handling document content types and their mappings.
|
|
5
|
-
* Supports the content types: "xlsx","xls","doc","docx","pdf","jpg","jpeg","odt","csv","png","msg","eml"
|
|
6
|
-
* @class DocumentContentTypeService
|
|
7
|
-
* @typedef {DocumentContentTypeService}
|
|
8
|
-
*/
|
|
9
|
-
@Injectable({
|
|
10
|
-
providedIn: 'root'
|
|
11
|
-
})
|
|
12
|
-
export class DocumentContentTypeService {
|
|
13
|
-
|
|
14
|
-
/**
|
|
15
|
-
* Mapping of file extensions to MIME types
|
|
16
|
-
* @type {Record<string, string>}
|
|
17
|
-
*/
|
|
18
|
-
private readonly extensionToMimeType: Record<string, string> = {
|
|
19
|
-
'xlsx': 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet',
|
|
20
|
-
'xls': 'application/vnd.ms-excel',
|
|
21
|
-
'doc': 'application/msword',
|
|
22
|
-
'docx': 'application/vnd.openxmlformats-officedocument.wordprocessingml.document',
|
|
23
|
-
'pdf': 'application/pdf',
|
|
24
|
-
'jpg': 'image/jpeg',
|
|
25
|
-
'jpeg': 'image/jpeg',
|
|
26
|
-
'odt': 'application/vnd.oasis.opendocument.text',
|
|
27
|
-
'csv': 'text/csv',
|
|
28
|
-
'png': 'image/png',
|
|
29
|
-
'msg': 'application/vnd.ms-outlook',
|
|
30
|
-
'eml': 'message/rfc822'
|
|
31
|
-
};
|
|
32
|
-
|
|
33
|
-
/**
|
|
34
|
-
* Mapping of MIME types to file extensions
|
|
35
|
-
* @type {Record<string, string>}
|
|
36
|
-
*/
|
|
37
|
-
private readonly mimeTypeToExtension: Record<string, string> = {
|
|
38
|
-
'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet': 'xlsx',
|
|
39
|
-
'application/vnd.ms-excel': 'xls',
|
|
40
|
-
'application/msword': 'doc',
|
|
41
|
-
'application/vnd.openxmlformats-officedocument.wordprocessingml.document': 'docx',
|
|
42
|
-
'application/pdf': 'pdf',
|
|
43
|
-
'image/jpeg': 'jpg',
|
|
44
|
-
'image/jpg': 'jpg',
|
|
45
|
-
'application/vnd.oasis.opendocument.text': 'odt',
|
|
46
|
-
'text/csv': 'csv',
|
|
47
|
-
'image/png': 'png',
|
|
48
|
-
'application/vnd.ms-outlook': 'msg',
|
|
49
|
-
'message/rfc822': 'eml'
|
|
50
|
-
};
|
|
51
|
-
|
|
52
|
-
/**
|
|
53
|
-
* List of all supported file extensions
|
|
54
|
-
* @type {string[]}
|
|
55
|
-
*/
|
|
56
|
-
readonly supportedExtensions: string[] = [
|
|
57
|
-
'xlsx', 'xls', 'doc', 'docx', 'pdf', 'jpg', 'jpeg', 'odt', 'csv', 'png', 'msg', 'eml'
|
|
58
|
-
];
|
|
59
|
-
|
|
60
|
-
/**
|
|
61
|
-
* List of all supported MIME types
|
|
62
|
-
* @type {string[]}
|
|
63
|
-
*/
|
|
64
|
-
readonly supportedMimeTypes: string[] = [
|
|
65
|
-
'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet',
|
|
66
|
-
'application/vnd.ms-excel',
|
|
67
|
-
'application/msword',
|
|
68
|
-
'application/vnd.openxmlformats-officedocument.wordprocessingml.document',
|
|
69
|
-
'application/pdf',
|
|
70
|
-
'image/jpeg',
|
|
71
|
-
'image/jpg',
|
|
72
|
-
'application/vnd.oasis.opendocument.text',
|
|
73
|
-
'text/csv',
|
|
74
|
-
'image/png',
|
|
75
|
-
'application/vnd.ms-outlook',
|
|
76
|
-
'message/rfc822'
|
|
77
|
-
];
|
|
78
|
-
|
|
79
|
-
/**
|
|
80
|
-
* Gets the MIME type for a given file extension
|
|
81
|
-
* @param {string} extension - The file extension (with or without dot)
|
|
82
|
-
* @returns {string | undefined} The MIME type or undefined if not supported
|
|
83
|
-
*/
|
|
84
|
-
getMimeType(extension: string): string | undefined {
|
|
85
|
-
const cleanExtension = extension.replace('.', '').toLowerCase();
|
|
86
|
-
return this.extensionToMimeType[cleanExtension];
|
|
87
|
-
}
|
|
88
|
-
|
|
89
|
-
/**
|
|
90
|
-
* Gets the file extension for a given MIME type
|
|
91
|
-
* @param {string} mimeType - The MIME type
|
|
92
|
-
* @returns {string | undefined} The file extension or undefined if not supported
|
|
93
|
-
*/
|
|
94
|
-
getExtension(mimeType: string): string | undefined {
|
|
95
|
-
return this.mimeTypeToExtension[mimeType];
|
|
96
|
-
}
|
|
97
|
-
|
|
98
|
-
/**
|
|
99
|
-
* Checks if a file extension is supported
|
|
100
|
-
* @param {string} extension - The file extension (with or without dot)
|
|
101
|
-
* @returns {boolean} True if the extension is supported
|
|
102
|
-
*/
|
|
103
|
-
isExtensionSupported(extension: string): boolean {
|
|
104
|
-
const cleanExtension = extension.replace('.', '').toLowerCase();
|
|
105
|
-
return this.supportedExtensions.includes(cleanExtension);
|
|
106
|
-
}
|
|
107
|
-
|
|
108
|
-
/**
|
|
109
|
-
* Checks if a MIME type is supported
|
|
110
|
-
* @param {string} mimeType - The MIME type
|
|
111
|
-
* @returns {boolean} True if the MIME type is supported
|
|
112
|
-
*/
|
|
113
|
-
isMimeTypeSupported(mimeType: string): boolean {
|
|
114
|
-
return this.supportedMimeTypes.includes(mimeType);
|
|
115
|
-
}
|
|
116
|
-
|
|
117
|
-
/**
|
|
118
|
-
* Gets the file extension from a filename
|
|
119
|
-
* @param {string} filename - The filename
|
|
120
|
-
* @returns {string | undefined} The file extension or undefined if no extension found
|
|
121
|
-
*/
|
|
122
|
-
getExtensionFromFilename(filename: string): string | undefined {
|
|
123
|
-
if (!filename || !filename.includes('.')) {
|
|
124
|
-
return undefined;
|
|
125
|
-
}
|
|
126
|
-
const parts = filename.split('.');
|
|
127
|
-
return parts[parts.length - 1].toLowerCase();
|
|
128
|
-
}
|
|
129
|
-
|
|
130
|
-
/**
|
|
131
|
-
* Gets the MIME type from a filename
|
|
132
|
-
* @param {string} filename - The filename
|
|
133
|
-
* @returns {string | undefined} The MIME type or undefined if not supported
|
|
134
|
-
*/
|
|
135
|
-
getMimeTypeFromFilename(filename: string): string | undefined {
|
|
136
|
-
const extension = this.getExtensionFromFilename(filename);
|
|
137
|
-
return extension ? this.getMimeType(extension) : undefined;
|
|
138
|
-
}
|
|
139
|
-
|
|
140
|
-
/**
|
|
141
|
-
* Validates if a file can be uploaded based on its extension
|
|
142
|
-
* @param {string} filename - The filename to validate
|
|
143
|
-
* @returns {boolean} True if the file can be uploaded
|
|
144
|
-
*/
|
|
145
|
-
canUploadFile(filename: string): boolean {
|
|
146
|
-
const extension = this.getExtensionFromFilename(filename);
|
|
147
|
-
return extension ? this.isExtensionSupported(extension) : false;
|
|
148
|
-
}
|
|
149
|
-
|
|
150
|
-
/**
|
|
151
|
-
* Gets a human-readable description for a content type
|
|
152
|
-
* @param {string} contentType - The content type (MIME type or extension)
|
|
153
|
-
* @returns {string} Human-readable description
|
|
154
|
-
*/
|
|
155
|
-
getContentTypeDescription(contentType: string): string {
|
|
156
|
-
// Check if it's a MIME type first
|
|
157
|
-
if (this.isMimeTypeSupported(contentType)) {
|
|
158
|
-
const extension = this.getExtension(contentType);
|
|
159
|
-
return this.getExtensionDescription(extension || 'unknown');
|
|
160
|
-
}
|
|
161
|
-
|
|
162
|
-
// Check if it's an extension
|
|
163
|
-
if (this.isExtensionSupported(contentType)) {
|
|
164
|
-
return this.getExtensionDescription(contentType);
|
|
165
|
-
}
|
|
166
|
-
|
|
167
|
-
return 'Unknown Document Type';
|
|
168
|
-
}
|
|
169
|
-
|
|
170
|
-
/**
|
|
171
|
-
* Gets a human-readable description for a file extension
|
|
172
|
-
* @param {string} extension - The file extension
|
|
173
|
-
* @returns {string} Human-readable description
|
|
174
|
-
*/
|
|
175
|
-
private getExtensionDescription(extension: string): string {
|
|
176
|
-
const descriptions: Record<string, string> = {
|
|
177
|
-
'xlsx': 'Excel Spreadsheet (XLSX)',
|
|
178
|
-
'xls': 'Excel Spreadsheet (XLS)',
|
|
179
|
-
'doc': 'Word Document (DOC)',
|
|
180
|
-
'docx': 'Word Document (DOCX)',
|
|
181
|
-
'pdf': 'PDF Document',
|
|
182
|
-
'jpg': 'JPEG Image',
|
|
183
|
-
'jpeg': 'JPEG Image',
|
|
184
|
-
'odt': 'OpenDocument Text',
|
|
185
|
-
'csv': 'CSV File',
|
|
186
|
-
'png': 'PNG Image',
|
|
187
|
-
'msg': 'Outlook Message',
|
|
188
|
-
'eml': 'Email Message'
|
|
189
|
-
};
|
|
190
|
-
|
|
191
|
-
return descriptions[extension] || 'Unknown File Type';
|
|
192
|
-
}
|
|
193
|
-
}
|
|
@@ -1,138 +0,0 @@
|
|
|
1
|
-
import { Injectable } from '@angular/core';
|
|
2
|
-
import { DOCUMENT_HISTORY } from '../constant/DOCUMENT_HISTORY';
|
|
3
|
-
import { SHARED } from '../../../Shared/constant/SHARED';
|
|
4
|
-
|
|
5
|
-
/**
|
|
6
|
-
* Service for handling document history styling logic
|
|
7
|
-
*/
|
|
8
|
-
@Injectable({
|
|
9
|
-
providedIn: 'root'
|
|
10
|
-
})
|
|
11
|
-
export class DocumentHistoryStyleService {
|
|
12
|
-
|
|
13
|
-
constructor() {}
|
|
14
|
-
|
|
15
|
-
/**
|
|
16
|
-
* Get the appropriate icon class based on the action label
|
|
17
|
-
*/
|
|
18
|
-
getActionIcon(label: string): string {
|
|
19
|
-
switch (label) {
|
|
20
|
-
case DOCUMENT_HISTORY.LABELS.DOCUMENT_UPLOADED:
|
|
21
|
-
return DOCUMENT_HISTORY.ICONS.DOCUMENT_UPLOADED;
|
|
22
|
-
case DOCUMENT_HISTORY.LABELS.DOCUMENT_REJECTED:
|
|
23
|
-
return DOCUMENT_HISTORY.ICONS.DOCUMENT_REJECTED;
|
|
24
|
-
case DOCUMENT_HISTORY.LABELS.DOCUMENT_ACCEPTED:
|
|
25
|
-
return DOCUMENT_HISTORY.ICONS.DOCUMENT_ACCEPTED;
|
|
26
|
-
case DOCUMENT_HISTORY.LABELS.DOCUMENT_REQUESTED:
|
|
27
|
-
return DOCUMENT_HISTORY.ICONS.DOCUMENT_REQUESTED;
|
|
28
|
-
default:
|
|
29
|
-
return DOCUMENT_HISTORY.ICONS.DOCUMENT_REQUESTED;
|
|
30
|
-
}
|
|
31
|
-
}
|
|
32
|
-
|
|
33
|
-
/**
|
|
34
|
-
* Get the appropriate color class based on the action label
|
|
35
|
-
*/
|
|
36
|
-
getActionColor(label: string): string {
|
|
37
|
-
switch (label) {
|
|
38
|
-
case DOCUMENT_HISTORY.LABELS.DOCUMENT_UPLOADED:
|
|
39
|
-
return DOCUMENT_HISTORY.TEXT_COLORS.DOCUMENT_UPLOADED;
|
|
40
|
-
case DOCUMENT_HISTORY.LABELS.DOCUMENT_REJECTED:
|
|
41
|
-
return DOCUMENT_HISTORY.TEXT_COLORS.DOCUMENT_REJECTED;
|
|
42
|
-
case DOCUMENT_HISTORY.LABELS.DOCUMENT_ACCEPTED:
|
|
43
|
-
return DOCUMENT_HISTORY.TEXT_COLORS.DOCUMENT_ACCEPTED;
|
|
44
|
-
case DOCUMENT_HISTORY.LABELS.DOCUMENT_REQUESTED:
|
|
45
|
-
return DOCUMENT_HISTORY.TEXT_COLORS.DOCUMENT_REQUESTED;
|
|
46
|
-
default:
|
|
47
|
-
return DOCUMENT_HISTORY.TEXT_COLORS.DOCUMENT_REQUESTED;
|
|
48
|
-
}
|
|
49
|
-
}
|
|
50
|
-
|
|
51
|
-
/**
|
|
52
|
-
* Get the appropriate background color class based on the action label
|
|
53
|
-
*/
|
|
54
|
-
getActionBgColor(label: string): string {
|
|
55
|
-
switch (label) {
|
|
56
|
-
case DOCUMENT_HISTORY.LABELS.DOCUMENT_UPLOADED:
|
|
57
|
-
return DOCUMENT_HISTORY.BG_COLORS.DOCUMENT_UPLOADED;
|
|
58
|
-
case DOCUMENT_HISTORY.LABELS.DOCUMENT_REJECTED:
|
|
59
|
-
return DOCUMENT_HISTORY.BG_COLORS.DOCUMENT_REJECTED;
|
|
60
|
-
case DOCUMENT_HISTORY.LABELS.DOCUMENT_ACCEPTED:
|
|
61
|
-
return DOCUMENT_HISTORY.BG_COLORS.DOCUMENT_ACCEPTED;
|
|
62
|
-
case DOCUMENT_HISTORY.LABELS.DOCUMENT_REQUESTED:
|
|
63
|
-
return DOCUMENT_HISTORY.BG_COLORS.DOCUMENT_REQUESTED;
|
|
64
|
-
default:
|
|
65
|
-
return DOCUMENT_HISTORY.BG_COLORS.DOCUMENT_REQUESTED;
|
|
66
|
-
}
|
|
67
|
-
}
|
|
68
|
-
|
|
69
|
-
/**
|
|
70
|
-
* Get the appropriate border color class based on the action label
|
|
71
|
-
*/
|
|
72
|
-
getActionBorderColor(label: string): string {
|
|
73
|
-
switch (label) {
|
|
74
|
-
case DOCUMENT_HISTORY.LABELS.DOCUMENT_UPLOADED:
|
|
75
|
-
return DOCUMENT_HISTORY.BORDER_COLORS.DOCUMENT_UPLOADED;
|
|
76
|
-
case DOCUMENT_HISTORY.LABELS.DOCUMENT_REJECTED:
|
|
77
|
-
return DOCUMENT_HISTORY.BORDER_COLORS.DOCUMENT_REJECTED;
|
|
78
|
-
case DOCUMENT_HISTORY.LABELS.DOCUMENT_ACCEPTED:
|
|
79
|
-
return DOCUMENT_HISTORY.BORDER_COLORS.DOCUMENT_ACCEPTED;
|
|
80
|
-
case DOCUMENT_HISTORY.LABELS.DOCUMENT_REQUESTED:
|
|
81
|
-
return DOCUMENT_HISTORY.BORDER_COLORS.DOCUMENT_REQUESTED;
|
|
82
|
-
default:
|
|
83
|
-
return DOCUMENT_HISTORY.BORDER_COLORS.DOCUMENT_REQUESTED;
|
|
84
|
-
}
|
|
85
|
-
}
|
|
86
|
-
|
|
87
|
-
/**
|
|
88
|
-
* Get the appropriate icon background color class based on the action label
|
|
89
|
-
*/
|
|
90
|
-
getActionIconBgColor(label: string): string {
|
|
91
|
-
switch (label) {
|
|
92
|
-
case DOCUMENT_HISTORY.LABELS.DOCUMENT_UPLOADED:
|
|
93
|
-
return DOCUMENT_HISTORY.ICON_BG_COLORS.DOCUMENT_UPLOADED;
|
|
94
|
-
case DOCUMENT_HISTORY.LABELS.DOCUMENT_REJECTED:
|
|
95
|
-
return DOCUMENT_HISTORY.ICON_BG_COLORS.DOCUMENT_REJECTED;
|
|
96
|
-
case DOCUMENT_HISTORY.LABELS.DOCUMENT_ACCEPTED:
|
|
97
|
-
return DOCUMENT_HISTORY.ICON_BG_COLORS.DOCUMENT_ACCEPTED;
|
|
98
|
-
case DOCUMENT_HISTORY.LABELS.DOCUMENT_REQUESTED:
|
|
99
|
-
return DOCUMENT_HISTORY.ICON_BG_COLORS.DOCUMENT_REQUESTED;
|
|
100
|
-
default:
|
|
101
|
-
return DOCUMENT_HISTORY.ICON_BG_COLORS.DOCUMENT_REQUESTED;
|
|
102
|
-
}
|
|
103
|
-
}
|
|
104
|
-
|
|
105
|
-
/**
|
|
106
|
-
* Check if a section has valid content to display
|
|
107
|
-
*/
|
|
108
|
-
checkValidContent(section: any): boolean {
|
|
109
|
-
return section.list && section.list.length > 0 &&
|
|
110
|
-
section.list.some((item:any) =>
|
|
111
|
-
item.label ||
|
|
112
|
-
item.requestDescription ||
|
|
113
|
-
item.documentUrl ||
|
|
114
|
-
item.userName
|
|
115
|
-
);
|
|
116
|
-
}
|
|
117
|
-
|
|
118
|
-
getAccordionClass(section: any): string {
|
|
119
|
-
if (!section.list || section.list.length === 0) {
|
|
120
|
-
return SHARED.DOCUMENT_REQUESTED;
|
|
121
|
-
}
|
|
122
|
-
|
|
123
|
-
const firstItem = section.list[0];
|
|
124
|
-
const label = firstItem.label;
|
|
125
|
-
|
|
126
|
-
switch (label) {
|
|
127
|
-
case DOCUMENT_HISTORY.LABELS.DOCUMENT_UPLOADED:
|
|
128
|
-
return SHARED.DOCUMENT_UPLOADED;
|
|
129
|
-
case DOCUMENT_HISTORY.LABELS.DOCUMENT_REJECTED:
|
|
130
|
-
return SHARED.DOCUMENT_REJECTED;
|
|
131
|
-
case DOCUMENT_HISTORY.LABELS.DOCUMENT_ACCEPTED:
|
|
132
|
-
return SHARED.DOCUMENT_ACCEPTED;
|
|
133
|
-
case DOCUMENT_HISTORY.LABELS.DOCUMENT_REQUESTED:
|
|
134
|
-
default:
|
|
135
|
-
return SHARED.DOCUMENT_REQUESTED;
|
|
136
|
-
}
|
|
137
|
-
}
|
|
138
|
-
}
|
|
@@ -1,129 +0,0 @@
|
|
|
1
|
-
import { Injectable } from '@angular/core';
|
|
2
|
-
import { DocumentHistoryItem, DocumentHistorySection } from '../models/document-history.model';
|
|
3
|
-
import { DocumentHistoryStyleService } from './document-history-style.service';
|
|
4
|
-
import { DOCUMENT_HISTORY } from '../constant/DOCUMENT_HISTORY';
|
|
5
|
-
import { SHARED } from '../../../Shared/constant/SHARED';
|
|
6
|
-
import { ERRORS } from '../../../Shared/constant/ERROR';
|
|
7
|
-
import { HttpClient } from '@angular/common/http';
|
|
8
|
-
|
|
9
|
-
// Extended interface for processed items with computed properties
|
|
10
|
-
interface ProcessedDocumentHistoryItem extends DocumentHistoryItem {
|
|
11
|
-
actionIcon: string;
|
|
12
|
-
actionColor: string;
|
|
13
|
-
actionBgColor: string;
|
|
14
|
-
actionBorderColor: string;
|
|
15
|
-
actionIconBgColor: string;
|
|
16
|
-
}
|
|
17
|
-
|
|
18
|
-
interface ProcessedDocumentHistorySection extends DocumentHistorySection {
|
|
19
|
-
list: ProcessedDocumentHistoryItem[];
|
|
20
|
-
accordionClass?: string;
|
|
21
|
-
hasValidContent?: boolean;
|
|
22
|
-
}
|
|
23
|
-
|
|
24
|
-
@Injectable({
|
|
25
|
-
providedIn: 'root'
|
|
26
|
-
})
|
|
27
|
-
export class DocumentHistoryService {
|
|
28
|
-
|
|
29
|
-
constructor(private documentHistoryStyleService: DocumentHistoryStyleService, private http : HttpClient) {}
|
|
30
|
-
|
|
31
|
-
/**
|
|
32
|
-
* Get the CSS class for accordion styling based on the section's label
|
|
33
|
-
*/
|
|
34
|
-
private getAccordionClass(section: ProcessedDocumentHistorySection): string {
|
|
35
|
-
if (!section.list || section.list.length === 0) {
|
|
36
|
-
return SHARED.DOCUMENT_REQUESTED; // Default class
|
|
37
|
-
}
|
|
38
|
-
|
|
39
|
-
const firstItem = section.list[0];
|
|
40
|
-
const label = firstItem.label;
|
|
41
|
-
|
|
42
|
-
switch (label) {
|
|
43
|
-
case DOCUMENT_HISTORY.LABELS.DOCUMENT_UPLOADED:
|
|
44
|
-
return SHARED.DOCUMENT_UPLOADED;
|
|
45
|
-
case DOCUMENT_HISTORY.LABELS.DOCUMENT_REJECTED:
|
|
46
|
-
return SHARED.DOCUMENT_REJECTED;
|
|
47
|
-
case DOCUMENT_HISTORY.LABELS.DOCUMENT_ACCEPTED:
|
|
48
|
-
return SHARED.DOCUMENT_ACCEPTED;
|
|
49
|
-
case DOCUMENT_HISTORY.LABELS.DOCUMENT_REQUESTED:
|
|
50
|
-
default:
|
|
51
|
-
return SHARED.DOCUMENT_REQUESTED;
|
|
52
|
-
}
|
|
53
|
-
}
|
|
54
|
-
|
|
55
|
-
/**
|
|
56
|
-
* Check if a section has valid content to display
|
|
57
|
-
*/
|
|
58
|
-
private checkValidContent(section: ProcessedDocumentHistorySection): boolean {
|
|
59
|
-
return section.list && section.list.length > 0 &&
|
|
60
|
-
section.list.some(item =>
|
|
61
|
-
item.requestDescription !== SHARED.EMPTY &&
|
|
62
|
-
item.documentUrl !== SHARED.EMPTY &&
|
|
63
|
-
(item.userName !== SHARED.EMPTY && item.userName !== SHARED.UNKNOWN_USER)
|
|
64
|
-
);
|
|
65
|
-
}
|
|
66
|
-
|
|
67
|
-
/**
|
|
68
|
-
* Process history data to add computed properties
|
|
69
|
-
*/
|
|
70
|
-
processHistoryData(historyData: DocumentHistorySection[]): ProcessedDocumentHistorySection[] {
|
|
71
|
-
if (!historyData) {
|
|
72
|
-
return SHARED.EMPTY_ARRAY;
|
|
73
|
-
}
|
|
74
|
-
|
|
75
|
-
return historyData.map(section => {
|
|
76
|
-
const processedSection: ProcessedDocumentHistorySection = {
|
|
77
|
-
...section,
|
|
78
|
-
list: section.list.map(item => ({
|
|
79
|
-
...item,
|
|
80
|
-
dateTime: item.dateTime || ERRORS.NO_VALUE_FOUND,
|
|
81
|
-
actionIcon: this.documentHistoryStyleService.getActionIcon(item.label),
|
|
82
|
-
actionColor: this.documentHistoryStyleService.getActionColor(item.label),
|
|
83
|
-
actionBgColor: this.documentHistoryStyleService.getActionBgColor(item.label),
|
|
84
|
-
actionBorderColor: this.documentHistoryStyleService.getActionBorderColor(item.label),
|
|
85
|
-
actionIconBgColor: this.documentHistoryStyleService.getActionIconBgColor(item.label)
|
|
86
|
-
}))
|
|
87
|
-
};
|
|
88
|
-
processedSection.accordionClass = this.getAccordionClass(processedSection);
|
|
89
|
-
processedSection.hasValidContent = this.checkValidContent(processedSection);
|
|
90
|
-
|
|
91
|
-
return processedSection;
|
|
92
|
-
}).sort((a, b) => {
|
|
93
|
-
if (a.header === SHARED.INITIAL_REQUEST) return -1;
|
|
94
|
-
if (b.header === SHARED.INITIAL_REQUEST) return 1;
|
|
95
|
-
return 0;
|
|
96
|
-
}).map(section => ({
|
|
97
|
-
...section,
|
|
98
|
-
list: section.list.reverse()
|
|
99
|
-
}));
|
|
100
|
-
}
|
|
101
|
-
|
|
102
|
-
/**
|
|
103
|
-
* Downloads a document when clicked
|
|
104
|
-
* @param documentUrl - The URL of the document to download
|
|
105
|
-
* @param docName - The name of the document
|
|
106
|
-
*/
|
|
107
|
-
downloadDocument(documentUrl: string, docName?: string): void {
|
|
108
|
-
if (!documentUrl) {
|
|
109
|
-
console.warn(ERRORS.NO_DOCUMENT_URL);
|
|
110
|
-
return;
|
|
111
|
-
}
|
|
112
|
-
this.http.get(documentUrl, { responseType: 'blob' }).subscribe({
|
|
113
|
-
next: (blob) => {
|
|
114
|
-
const blobUrl = window.URL.createObjectURL(blob);
|
|
115
|
-
const a = document.createElement('a');
|
|
116
|
-
a.href = blobUrl;
|
|
117
|
-
a.download = docName ?? SHARED.DOCUMENT;
|
|
118
|
-
a.style.display = SHARED.NONE;
|
|
119
|
-
document.body.appendChild(a);
|
|
120
|
-
a.click();
|
|
121
|
-
a.remove();
|
|
122
|
-
window.URL.revokeObjectURL(blobUrl);
|
|
123
|
-
},
|
|
124
|
-
error: (err) => {
|
|
125
|
-
console.error(ERRORS.DOWNLOAD_FAIL, err);
|
|
126
|
-
}
|
|
127
|
-
});
|
|
128
|
-
}
|
|
129
|
-
}
|
|
@@ -1,119 +0,0 @@
|
|
|
1
|
-
import { TestBed } from '@angular/core/testing';
|
|
2
|
-
import { HttpClientTestingModule, HttpTestingController } from '@angular/common/http/testing';
|
|
3
|
-
import { DocumentHttpService } from './document-http.service';
|
|
4
|
-
import { DocumentStore } from '../state/document.store';
|
|
5
|
-
import { AppConfigService } from '../../../Shared/services/app-config.service';
|
|
6
|
-
import { URLS } from '../../../Shared/constant/URLS';
|
|
7
|
-
import { DocumentTypeModel } from '../models/document-type.model';
|
|
8
|
-
import { throwError } from 'rxjs';
|
|
9
|
-
import { FolderBlockModel } from '../models/folder.model';
|
|
10
|
-
import { DocumentModel } from '../models/document.model';
|
|
11
|
-
|
|
12
|
-
describe('DocumentHttpService', () => {
|
|
13
|
-
let service: DocumentHttpService;
|
|
14
|
-
let httpMock: HttpTestingController;
|
|
15
|
-
let documentStoreSpy: jasmine.SpyObj<DocumentStore>;
|
|
16
|
-
let appConfigServiceSpy: jasmine.SpyObj<AppConfigService>;
|
|
17
|
-
|
|
18
|
-
beforeEach(() => {
|
|
19
|
-
documentStoreSpy = jasmine.createSpyObj('DocumentStore', ['setDocumentTypes', 'setFolders']);
|
|
20
|
-
appConfigServiceSpy = jasmine.createSpyObj('AppConfigService', ['apiBaseUrl'], {
|
|
21
|
-
apiBaseUrl: 'http://localhost/api'
|
|
22
|
-
});
|
|
23
|
-
|
|
24
|
-
TestBed.configureTestingModule({
|
|
25
|
-
imports: [HttpClientTestingModule],
|
|
26
|
-
providers: [
|
|
27
|
-
DocumentHttpService,
|
|
28
|
-
{ provide: DocumentStore, useValue: documentStoreSpy },
|
|
29
|
-
{ provide: AppConfigService, useValue: appConfigServiceSpy }
|
|
30
|
-
]
|
|
31
|
-
});
|
|
32
|
-
|
|
33
|
-
service = TestBed.inject(DocumentHttpService);
|
|
34
|
-
httpMock = TestBed.inject(HttpTestingController);
|
|
35
|
-
});
|
|
36
|
-
|
|
37
|
-
it('should be created', () => {
|
|
38
|
-
expect(service).toBeTruthy();
|
|
39
|
-
});
|
|
40
|
-
|
|
41
|
-
it('should fetch document types and update the store', () => {
|
|
42
|
-
const mockDocumentTypes: DocumentTypeModel[] = [
|
|
43
|
-
{
|
|
44
|
-
_id: '1',
|
|
45
|
-
label: 'Parent-child1',
|
|
46
|
-
name: 'Type 1',
|
|
47
|
-
matchRules: 'Rule 1',
|
|
48
|
-
parentDocumentTypeId: '0'
|
|
49
|
-
},
|
|
50
|
-
{
|
|
51
|
-
_id: '2',
|
|
52
|
-
label: 'Parent-child2',
|
|
53
|
-
name: 'Type 2',
|
|
54
|
-
matchRules: 'Rule 2',
|
|
55
|
-
parentDocumentTypeId: '1'
|
|
56
|
-
}
|
|
57
|
-
];
|
|
58
|
-
|
|
59
|
-
service.getDocumentTypes().subscribe((documentTypes) => {
|
|
60
|
-
expect(documentTypes).toEqual(mockDocumentTypes);
|
|
61
|
-
expect(documentStoreSpy.setDocumentTypes).toHaveBeenCalledWith(mockDocumentTypes);
|
|
62
|
-
});
|
|
63
|
-
|
|
64
|
-
const req = httpMock.expectOne(
|
|
65
|
-
`${appConfigServiceSpy.apiBaseUrl}${URLS.DOCUMENT_UPLOAD}/${URLS.DOCUMENT_TYPES}`
|
|
66
|
-
);
|
|
67
|
-
expect(req.request.method).toBe('GET');
|
|
68
|
-
req.flush(mockDocumentTypes); // Mock the response with data
|
|
69
|
-
});
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
it('should fetch folders data and update the store', () => {
|
|
74
|
-
const contextId = 'someContextId';
|
|
75
|
-
const mockFolderData: FolderBlockModel[] = [
|
|
76
|
-
{ _id: '1', folderName: 'Folder 1' },
|
|
77
|
-
{ _id: '2', folderName: 'Folder 2' }
|
|
78
|
-
];
|
|
79
|
-
|
|
80
|
-
service.getFoldersData(contextId).subscribe((foldersData) => {
|
|
81
|
-
expect(foldersData).toEqual(mockFolderData);
|
|
82
|
-
expect(documentStoreSpy.setFolders).toHaveBeenCalledWith(mockFolderData); // ✅ Corrected method
|
|
83
|
-
});
|
|
84
|
-
|
|
85
|
-
const req = httpMock.expectOne(
|
|
86
|
-
`${appConfigServiceSpy.apiBaseUrl}${URLS.DOCUMENT_UPLOAD}${URLS.FOLDERS}${contextId}`
|
|
87
|
-
);
|
|
88
|
-
expect(req.request.method).toBe('GET');
|
|
89
|
-
req.flush(mockFolderData);
|
|
90
|
-
});
|
|
91
|
-
|
|
92
|
-
afterEach(() => {
|
|
93
|
-
httpMock.verify();
|
|
94
|
-
});
|
|
95
|
-
|
|
96
|
-
it('should update document name successfully', () => {
|
|
97
|
-
const documentId = '123';
|
|
98
|
-
const payload = { fileName: 'New Document Name' };
|
|
99
|
-
const mockUpdatedDocument: DocumentModel = {
|
|
100
|
-
_id: documentId,
|
|
101
|
-
fileName: 'New Document Name'
|
|
102
|
-
} as DocumentModel;
|
|
103
|
-
|
|
104
|
-
service.updateDocumentName(documentId, payload).subscribe((updatedDoc) => {
|
|
105
|
-
expect(updatedDoc).toEqual(jasmine.objectContaining(mockUpdatedDocument));
|
|
106
|
-
});
|
|
107
|
-
|
|
108
|
-
const req = httpMock.expectOne(
|
|
109
|
-
`${appConfigServiceSpy.apiBaseUrl}${URLS.DOCUMENT_UPLOAD}/${documentId}`
|
|
110
|
-
);
|
|
111
|
-
expect(req.request.method).toBe('PUT');
|
|
112
|
-
expect(req.request.body).toEqual(payload);
|
|
113
|
-
req.flush(mockUpdatedDocument);
|
|
114
|
-
});
|
|
115
|
-
|
|
116
|
-
afterEach(() => {
|
|
117
|
-
httpMock.verify();
|
|
118
|
-
});
|
|
119
|
-
});
|