@chat21/chat21-web-widget 5.0.45 → 5.0.46-rc.2
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/CHANGELOG.md +8 -0
- package/angular.json +2 -1
- package/dist/assets/i18n/en.json +1 -1
- package/dist/assets/i18n/es.json +22 -9
- package/dist/assets/i18n/fr.json +20 -7
- package/dist/assets/i18n/it.json +24 -11
- package/dist/assets/twp/index-dev.html +1 -1
- package/dist/iframe-style.css +8 -1
- package/dist/main.js +1 -1
- package/package.json +1 -1
- package/src/app/app.component.scss +4 -3
- package/src/app/app.component.spec.ts +59 -18
- package/src/app/component/conversation-detail/conversation/conversation.component.spec.ts +12 -1
- package/src/app/component/conversation-detail/conversation/conversation.component.ts +4 -2
- package/src/app/component/conversation-detail/conversation-content/conversation-content.component.spec.ts +7 -4
- package/src/app/component/conversation-detail/conversation-footer/conversation-footer.component.spec.ts +11 -3
- package/src/app/component/conversation-detail/conversation-header/conversation-header.component.spec.ts +11 -4
- package/src/app/component/conversation-detail/conversation-preview/conversation-preview.component.spec.ts +9 -59
- package/src/app/component/form/form-builder/form-builder.component.spec.ts +9 -1
- package/src/app/component/form/inputs/form-textarea/form-textarea.component.html +5 -5
- package/src/app/component/form/inputs/form-textarea/form-textarea.component.spec.ts +1 -1
- package/src/app/component/form/inputs/form-textarea/form-textarea.component.ts +1 -1
- package/src/app/component/home/home.component.spec.ts +12 -3
- package/src/app/component/home-conversations/home-conversations.component.spec.ts +9 -1
- package/src/app/component/list-all-conversations/list-all-conversations.component.spec.ts +9 -11
- package/src/app/component/list-conversations/list-conversations.component.spec.ts +9 -1
- package/src/app/component/message/buttons/action-button/action-button.component.scss +1 -0
- package/src/app/component/message/buttons/link-button/link-button.component.scss +1 -0
- package/src/app/component/message/buttons/text-button/text-button.component.scss +1 -0
- package/src/app/component/message/frame/frame.component.spec.ts +16 -3
- package/src/app/component/message/frame/frame.component.ts +2 -2
- package/src/app/component/message/image/image.component.ts +46 -0
- package/src/app/component/message/info-message/info-message.component.spec.ts +9 -1
- package/src/app/component/message/return-receipt/return-receipt.component.spec.ts +17 -2
- package/src/app/component/message/text/text.component.spec.ts +2 -2
- package/src/app/providers/settings-saver.service.ts +1 -1
- package/src/app/utils/globals.ts +1 -1
- package/src/assets/i18n/en.json +1 -1
- package/src/assets/i18n/es.json +22 -9
- package/src/assets/i18n/fr.json +20 -7
- package/src/assets/i18n/it.json +24 -11
- package/src/assets/twp/index-dev.html +1 -1
- package/src/chat21-core/providers/firebase/firebase-conversation-handler.ts +6 -47
- package/src/chat21-core/providers/mqtt/mqtt-conversation-handler.ts +5 -23
- package/src/chat21-core/providers/tiledesk/tiledesk-auth.service.spec.ts +29 -19
- package/src/chat21-core/utils/utils-message.ts +1 -1
- package/src/chat21-core/utils/utils.ts +3 -3
- package/src/iframe-style.css +8 -1
package/package.json
CHANGED
|
@@ -650,10 +650,11 @@ chat-root {
|
|
|
650
650
|
justify-content: center;
|
|
651
651
|
text-align: center;
|
|
652
652
|
// margin: 0 10px 0 10px;
|
|
653
|
-
width: 40px;
|
|
654
|
-
height: 40px;
|
|
655
|
-
margin: 6px;
|
|
653
|
+
width: 35px;//40px;
|
|
654
|
+
height: 35px;//40px;
|
|
655
|
+
margin: 9px; //6px;
|
|
656
656
|
padding: 0px;
|
|
657
|
+
border-radius: 8px;
|
|
657
658
|
|
|
658
659
|
cursor: pointer;
|
|
659
660
|
&.c21-right{
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { Triggerhandler } from './../chat21-core/utils/triggerHandler';
|
|
2
|
-
import { TestBed, waitForAsync } from '@angular/core/testing';
|
|
2
|
+
import { ComponentFixture, TestBed, waitForAsync } from '@angular/core/testing';
|
|
3
3
|
import { RouterTestingModule } from '@angular/router/testing';
|
|
4
4
|
import { AppComponent } from './app.component';
|
|
5
5
|
import { GlobalSettingsService } from './providers/global-settings.service';
|
|
@@ -7,20 +7,56 @@ import { HttpClientTestingModule } from '@angular/common/http/testing';
|
|
|
7
7
|
import { AppStorageService } from 'src/chat21-core/providers/abstract/app-storage.service';
|
|
8
8
|
import { SettingsSaverService } from './providers/settings-saver.service';
|
|
9
9
|
import { TranslatorService } from './providers/translator.service';
|
|
10
|
-
|
|
10
|
+
import { TranslateModule } from '@ngx-translate/core';
|
|
11
|
+
import { CustomTranslateService } from '../chat21-core/providers/custom-translate.service';
|
|
12
|
+
import { ConversationsHandlerService } from '../chat21-core/providers/abstract/conversations-handler.service';
|
|
13
|
+
import { ArchivedConversationsHandlerService } from '../chat21-core/providers/abstract/archivedconversations-handler.service';
|
|
14
|
+
import { TiledeskRequestsService } from 'src/chat21-core/providers/tiledesk/tiledesk-requests.service';
|
|
15
|
+
import { TiledeskAuthService } from 'src/chat21-core/providers/tiledesk/tiledesk-auth.service';
|
|
16
|
+
import { MessagingAuthService } from 'src/chat21-core/providers/abstract/messagingAuth.service';
|
|
17
|
+
import { ConversationHandlerBuilderService } from 'src/chat21-core/providers/abstract/conversation-handler-builder.service';
|
|
18
|
+
import { ImageRepoService } from 'src/chat21-core/providers/abstract/image-repo.service';
|
|
19
|
+
import { TypingService } from 'src/chat21-core/providers/abstract/typing.service';
|
|
20
|
+
import { PresenceService } from 'src/chat21-core/providers/abstract/presence.service';
|
|
21
|
+
import { UploadService } from 'src/chat21-core/providers/abstract/upload.service';
|
|
22
|
+
import { AppConfigService } from './providers/app-config.service';
|
|
23
|
+
import { ChatManager } from 'src/chat21-core/providers/chat-manager';
|
|
24
|
+
import { NGXLogger } from 'ngx-logger';
|
|
25
|
+
import { CustomLogger } from 'src/chat21-core/providers/logger/customLogger';
|
|
26
|
+
import { LoggerInstance } from 'src/chat21-core/providers/logger/loggerInstance';
|
|
27
|
+
|
|
11
28
|
describe('AppComponent', () => {
|
|
29
|
+
let component: AppComponent;
|
|
30
|
+
let fixture: ComponentFixture<AppComponent>;
|
|
31
|
+
let ngxlogger: NGXLogger;
|
|
32
|
+
let customLogger = new CustomLogger(ngxlogger)
|
|
33
|
+
|
|
12
34
|
beforeEach(waitForAsync(() => {
|
|
13
35
|
TestBed.configureTestingModule({
|
|
14
36
|
imports: [
|
|
15
37
|
RouterTestingModule,
|
|
16
|
-
HttpClientTestingModule
|
|
38
|
+
HttpClientTestingModule,
|
|
39
|
+
TranslateModule.forRoot(),
|
|
17
40
|
],
|
|
18
41
|
providers:[
|
|
19
42
|
Triggerhandler,
|
|
20
43
|
GlobalSettingsService,
|
|
21
44
|
AppStorageService,
|
|
45
|
+
AppConfigService,
|
|
22
46
|
SettingsSaverService,
|
|
23
|
-
TranslatorService
|
|
47
|
+
TranslatorService,
|
|
48
|
+
CustomTranslateService,
|
|
49
|
+
ChatManager,
|
|
50
|
+
ConversationsHandlerService,
|
|
51
|
+
ConversationHandlerBuilderService,
|
|
52
|
+
ArchivedConversationsHandlerService,
|
|
53
|
+
TiledeskRequestsService,
|
|
54
|
+
TiledeskAuthService,
|
|
55
|
+
MessagingAuthService,
|
|
56
|
+
ImageRepoService,
|
|
57
|
+
TypingService,
|
|
58
|
+
PresenceService,
|
|
59
|
+
UploadService
|
|
24
60
|
],
|
|
25
61
|
declarations: [
|
|
26
62
|
AppComponent
|
|
@@ -28,22 +64,27 @@ describe('AppComponent', () => {
|
|
|
28
64
|
}).compileComponents();
|
|
29
65
|
}));
|
|
30
66
|
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
67
|
+
beforeEach(() => {
|
|
68
|
+
fixture = TestBed.createComponent(AppComponent);
|
|
69
|
+
component = fixture.componentInstance;
|
|
70
|
+
LoggerInstance.setInstance(customLogger)
|
|
71
|
+
let logger = LoggerInstance.getInstance()
|
|
72
|
+
component['logger']= logger
|
|
73
|
+
fixture.detectChanges();
|
|
35
74
|
});
|
|
36
75
|
|
|
37
|
-
it(
|
|
38
|
-
|
|
39
|
-
const app = fixture.debugElement.componentInstance;
|
|
40
|
-
expect(app.title).toEqual('widget');
|
|
76
|
+
it('should create the app', () => {
|
|
77
|
+
expect(component).toBeTruthy();
|
|
41
78
|
});
|
|
42
79
|
|
|
43
|
-
it(
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
80
|
+
// it(`should have as title 'widget'`, () => {
|
|
81
|
+
// expect(component.title).toEqual('widget');
|
|
82
|
+
// });
|
|
83
|
+
|
|
84
|
+
// it('should render title in a h1 tag', () => {
|
|
85
|
+
// const fixture = TestBed.createComponent(AppComponent);
|
|
86
|
+
// fixture.detectChanges();
|
|
87
|
+
// const compiled = fixture.debugElement.nativeElement;
|
|
88
|
+
// expect(compiled.querySelector('h1').textContent).toContain('Welcome to widget!');
|
|
89
|
+
// });
|
|
49
90
|
});
|
|
@@ -30,10 +30,15 @@ import { TypingService } from '../../../../chat21-core/providers/abstract/typing
|
|
|
30
30
|
import { ImageRepoService } from '../../../../chat21-core/providers/abstract/image-repo.service';
|
|
31
31
|
import { UploadService } from '../../../../chat21-core/providers/abstract/upload.service';
|
|
32
32
|
import { TranslateModule } from '@ngx-translate/core';
|
|
33
|
+
import { NGXLogger } from 'ngx-logger';
|
|
34
|
+
import { CustomLogger } from 'src/chat21-core/providers/logger/customLogger';
|
|
35
|
+
import { LoggerInstance } from 'src/chat21-core/providers/logger/loggerInstance';
|
|
33
36
|
|
|
34
37
|
describe('ConversationComponent', () => {
|
|
35
38
|
let component: ConversationComponent;
|
|
36
39
|
let fixture: ComponentFixture<ConversationComponent>;
|
|
40
|
+
let ngxlogger: NGXLogger;
|
|
41
|
+
let customLogger = new CustomLogger(ngxlogger)
|
|
37
42
|
class MockElementRef {}
|
|
38
43
|
|
|
39
44
|
beforeEach(waitForAsync(() => {
|
|
@@ -66,7 +71,8 @@ describe('ConversationComponent', () => {
|
|
|
66
71
|
ImageRepoService,
|
|
67
72
|
UploadService,
|
|
68
73
|
StarRatingWidgetService,
|
|
69
|
-
TiledeskRequestsService
|
|
74
|
+
TiledeskRequestsService,
|
|
75
|
+
NGXLogger
|
|
70
76
|
],
|
|
71
77
|
schemas: [NO_ERRORS_SCHEMA]
|
|
72
78
|
})
|
|
@@ -76,6 +82,11 @@ describe('ConversationComponent', () => {
|
|
|
76
82
|
beforeEach(() => {
|
|
77
83
|
fixture = TestBed.createComponent(ConversationComponent);
|
|
78
84
|
component = fixture.componentInstance;
|
|
85
|
+
LoggerInstance.setInstance(customLogger)
|
|
86
|
+
let logger = LoggerInstance.getInstance()
|
|
87
|
+
component['logger']= logger
|
|
88
|
+
let globals = fixture.debugElement.injector.get(Globals) as Globals;
|
|
89
|
+
globals.initDefafultParameters()
|
|
79
90
|
fixture.detectChanges();
|
|
80
91
|
});
|
|
81
92
|
|
|
@@ -198,8 +198,6 @@ export class ConversationComponent implements OnInit, AfterViewInit, OnChanges {
|
|
|
198
198
|
// this.initAll();
|
|
199
199
|
this.logger.debug('[CONV-COMP] ngOnInit: ', this.senderId);
|
|
200
200
|
this.showMessageWelcome = false;
|
|
201
|
-
this.elementRef.nativeElement.style.setProperty('--themeColor', this.stylesMap.get('themeColor'))
|
|
202
|
-
this.elementRef.nativeElement.style.setProperty('--foregroundColor', this.stylesMap.get('foregroundColor'))
|
|
203
201
|
// const subscriptionEndRenderMessage = this.appComponent.obsEndRenderMessage.subscribe(() => {
|
|
204
202
|
// this.ngZone.run(() => {
|
|
205
203
|
// // that.scrollToBottom();
|
|
@@ -307,6 +305,10 @@ export class ConversationComponent implements OnInit, AfterViewInit, OnChanges {
|
|
|
307
305
|
|
|
308
306
|
ngOnChanges(changes: SimpleChanges) {
|
|
309
307
|
this.logger.debug('[CONV-COMP] onChagnges', changes)
|
|
308
|
+
if(this.stylesMap){
|
|
309
|
+
this.elementRef.nativeElement.style.setProperty('--themeColor', this.stylesMap.get('themeColor'))
|
|
310
|
+
this.elementRef.nativeElement.style.setProperty('--foregroundColor', this.stylesMap.get('foregroundColor'))
|
|
311
|
+
}
|
|
310
312
|
if (this.isOpen === true) {
|
|
311
313
|
//this.updateConversationBadge();
|
|
312
314
|
// this.scrollToBottom();
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { MomentModule } from 'ngx-moment';
|
|
2
2
|
import { TooltipModule } from 'ng2-tooltip-directive';
|
|
3
|
-
import { async, ComponentFixture, TestBed, waitForAsync } from '@angular/core/testing';
|
|
3
|
+
import { async, ComponentFixture, TestBed, waitForAsync, inject } from '@angular/core/testing';
|
|
4
4
|
|
|
5
5
|
import { ConversationContentComponent } from './conversation-content.component';
|
|
6
6
|
import { MarkedPipe } from '../../../directives/marked.pipe';
|
|
@@ -8,7 +8,7 @@ import { HtmlEntitiesEncodePipe } from '../../../directives/html-entities-encode
|
|
|
8
8
|
import { UploadService } from '../../../../chat21-core/providers/abstract/upload.service';
|
|
9
9
|
import { CustomLogger } from '../../../../chat21-core/providers/logger/customLogger';
|
|
10
10
|
import { LoggerInstance } from '../../../../chat21-core/providers/logger/loggerInstance';
|
|
11
|
-
import { NO_ERRORS_SCHEMA } from '@angular/core';
|
|
11
|
+
import { NO_ERRORS_SCHEMA, Injectable } from '@angular/core';
|
|
12
12
|
import { By } from '@angular/platform-browser';
|
|
13
13
|
import { ImageRepoService } from '../../../../chat21-core/providers/abstract/image-repo.service';
|
|
14
14
|
|
|
@@ -51,6 +51,8 @@ describe('ConversationContentComponent', () => {
|
|
|
51
51
|
beforeEach(() => {
|
|
52
52
|
fixture = TestBed.createComponent(ConversationContentComponent);
|
|
53
53
|
component = fixture.componentInstance;
|
|
54
|
+
let upload = fixture.debugElement.injector.get(UploadService) as UploadService
|
|
55
|
+
upload.BSStateUpload.next({ upload: 100, type: 'image' })
|
|
54
56
|
fixture.detectChanges();
|
|
55
57
|
});
|
|
56
58
|
|
|
@@ -117,9 +119,9 @@ describe('ConversationContentComponent', () => {
|
|
|
117
119
|
component.baseLocation = 'http://tiledesk-widget-pre.s3-eu-west-1.amazonaws.com'
|
|
118
120
|
component.translationMap = new Map();
|
|
119
121
|
component.stylesMap = new Map();
|
|
120
|
-
fixture.detectChanges()
|
|
121
122
|
const nativeEl: HTMLElement = fixture.nativeElement;
|
|
122
123
|
const baseReceiveEl = nativeEl.querySelector('.message_sender_fullname');
|
|
124
|
+
fixture.detectChanges()
|
|
123
125
|
expect(baseReceiveEl.textContent).toBe('BOT2');
|
|
124
126
|
});
|
|
125
127
|
|
|
@@ -164,11 +166,12 @@ describe('ConversationContentComponent', () => {
|
|
|
164
166
|
component.baseLocation = 'http://tiledesk-widget-pre.s3-eu-west-1.amazonaws.com'
|
|
165
167
|
component.translationMap = new Map();
|
|
166
168
|
component.stylesMap = new Map();
|
|
167
|
-
|
|
169
|
+
|
|
168
170
|
const nativeEl: HTMLElement = fixture.nativeElement;
|
|
169
171
|
const baseReceiveEl = nativeEl.querySelectorAll('.base_receive')
|
|
170
172
|
const chatImageComponentChild = baseReceiveEl[0].querySelector('chat-avatar-image')
|
|
171
173
|
const bubbleMessageComponentChild = baseReceiveEl[0].querySelector('chat-bubble-message.msg_receive')
|
|
174
|
+
fixture.detectChanges()
|
|
172
175
|
expect(chatImageComponentChild).toBeTruthy();
|
|
173
176
|
expect(bubbleMessageComponentChild).toBeTruthy();
|
|
174
177
|
});
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { style } from '@angular/animations';
|
|
2
2
|
import { ChatManager } from './../../../../chat21-core/providers/chat-manager';
|
|
3
3
|
import { Globals } from './../../../utils/globals';
|
|
4
|
-
import { async, ComponentFixture, fakeAsync, TestBed, tick } from '@angular/core/testing';
|
|
4
|
+
import { async, ComponentFixture, fakeAsync, TestBed, tick, waitForAsync } from '@angular/core/testing';
|
|
5
5
|
import { FormsModule } from '@angular/forms';
|
|
6
6
|
|
|
7
7
|
import { ConversationFooterComponent } from './conversation-footer.component';
|
|
@@ -10,12 +10,17 @@ import { TypingService } from '../../../../chat21-core/providers/abstract/typing
|
|
|
10
10
|
import { ConversationsHandlerService } from '../../../../chat21-core/providers/abstract/conversations-handler.service';
|
|
11
11
|
import { ArchivedConversationsHandlerService } from '../../../../chat21-core/providers/abstract/archivedconversations-handler.service';
|
|
12
12
|
import { By } from '@angular/platform-browser';
|
|
13
|
+
import { NGXLogger } from 'ngx-logger';
|
|
14
|
+
import { CustomLogger } from 'src/chat21-core/providers/logger/customLogger';
|
|
15
|
+
import { LoggerInstance } from 'src/chat21-core/providers/logger/loggerInstance';
|
|
13
16
|
|
|
14
17
|
describe('ConversationFooterComponent', () => {
|
|
15
18
|
let component: ConversationFooterComponent;
|
|
16
19
|
let fixture: ComponentFixture<ConversationFooterComponent>;
|
|
17
|
-
|
|
18
|
-
|
|
20
|
+
let ngxlogger: NGXLogger;
|
|
21
|
+
let customLogger = new CustomLogger(ngxlogger)
|
|
22
|
+
|
|
23
|
+
beforeEach(waitForAsync(() => {
|
|
19
24
|
TestBed.configureTestingModule({
|
|
20
25
|
declarations: [
|
|
21
26
|
ConversationFooterComponent,
|
|
@@ -36,6 +41,9 @@ describe('ConversationFooterComponent', () => {
|
|
|
36
41
|
beforeEach(() => {
|
|
37
42
|
fixture = TestBed.createComponent(ConversationFooterComponent);
|
|
38
43
|
component = fixture.componentInstance;
|
|
44
|
+
LoggerInstance.setInstance(customLogger)
|
|
45
|
+
let logger = LoggerInstance.getInstance()
|
|
46
|
+
component['logger']= logger
|
|
39
47
|
fixture.detectChanges();
|
|
40
48
|
});
|
|
41
49
|
|
|
@@ -2,16 +2,21 @@ import { HttpClientModule } from '@angular/common/http';
|
|
|
2
2
|
import { AppConfigService } from './../../../providers/app-config.service';
|
|
3
3
|
import { Globals } from './../../../utils/globals';
|
|
4
4
|
import { NO_ERRORS_SCHEMA } from '@angular/core';
|
|
5
|
-
import { async, ComponentFixture, TestBed } from '@angular/core/testing';
|
|
5
|
+
import { async, ComponentFixture, TestBed, waitForAsync } from '@angular/core/testing';
|
|
6
6
|
|
|
7
7
|
import { ConversationHeaderComponent } from './conversation-header.component';
|
|
8
8
|
import { TypingService } from '../../../../chat21-core/providers/abstract/typing.service';
|
|
9
|
+
import { LoggerInstance } from 'src/chat21-core/providers/logger/loggerInstance';
|
|
10
|
+
import { NGXLogger } from 'ngx-logger';
|
|
11
|
+
import { CustomLogger } from 'src/chat21-core/providers/logger/customLogger';
|
|
9
12
|
|
|
10
13
|
describe('ConversationHeaderComponent', () => {
|
|
11
14
|
let component: ConversationHeaderComponent;
|
|
12
15
|
let fixture: ComponentFixture<ConversationHeaderComponent>;
|
|
13
|
-
|
|
14
|
-
|
|
16
|
+
let ngxlogger: NGXLogger;
|
|
17
|
+
let customLogger = new CustomLogger(ngxlogger)
|
|
18
|
+
|
|
19
|
+
beforeEach(waitForAsync(() => {
|
|
15
20
|
TestBed.configureTestingModule({
|
|
16
21
|
declarations: [ ConversationHeaderComponent ],
|
|
17
22
|
imports: [
|
|
@@ -30,7 +35,9 @@ describe('ConversationHeaderComponent', () => {
|
|
|
30
35
|
beforeEach(() => {
|
|
31
36
|
fixture = TestBed.createComponent(ConversationHeaderComponent);
|
|
32
37
|
component = fixture.componentInstance;
|
|
33
|
-
|
|
38
|
+
LoggerInstance.setInstance(customLogger)
|
|
39
|
+
let logger = LoggerInstance.getInstance()
|
|
40
|
+
component['logger']= logger
|
|
34
41
|
});
|
|
35
42
|
|
|
36
43
|
it('should create', () => {
|
|
@@ -5,62 +5,18 @@ import { waitForAsync, ComponentFixture, TestBed } from '@angular/core/testing';
|
|
|
5
5
|
|
|
6
6
|
import { ConversationPreviewComponent } from './conversation-preview.component';
|
|
7
7
|
import { LogLevel } from 'src/chat21-core/utils/constants';
|
|
8
|
+
import { NGXLogger } from 'ngx-logger';
|
|
9
|
+
import { CustomLogger } from 'src/chat21-core/providers/logger/customLogger';
|
|
8
10
|
const mockService = jasmine.createSpyObj('LoggerService', ['setLoggerConfig', "debug", "log", "warn", "info", "error" ]);
|
|
9
11
|
|
|
10
|
-
describe('
|
|
12
|
+
describe('ConversationPreviewComponent', () => {
|
|
11
13
|
let component: ConversationPreviewComponent;
|
|
12
14
|
let fixture: ComponentFixture<ConversationPreviewComponent>;
|
|
13
|
-
let
|
|
14
|
-
|
|
15
|
-
let testBedService: LoggerService;
|
|
16
|
-
|
|
17
|
-
class MockLoggerService extends LoggerService {
|
|
18
|
-
|
|
19
|
-
private logLevel: number = LogLevel.ERROR
|
|
20
|
-
private isLogEnabled: boolean = true;
|
|
21
|
-
|
|
22
|
-
setLoggerConfig(isLogEnabled: boolean, logLevel: string) {
|
|
23
|
-
this.isLogEnabled = isLogEnabled;
|
|
24
|
-
if (typeof logLevel === 'string') {
|
|
25
|
-
this.logLevel = LogLevel[logLevel.toUpperCase()];
|
|
26
|
-
} else {
|
|
27
|
-
console.error('logLevel is not a string. See the chat21-ionic README.md')
|
|
28
|
-
}
|
|
29
|
-
}
|
|
30
|
-
debug(...message: any[]) {
|
|
31
|
-
if (this.isLogEnabled && this.logLevel >= LogLevel.DEBUG) {
|
|
32
|
-
// this.logger.debug(message, ...optionalParams)
|
|
33
|
-
console.debug(message)
|
|
34
|
-
}
|
|
35
|
-
}
|
|
36
|
-
log(...message: any[]) {
|
|
37
|
-
if (this.isLogEnabled && this.logLevel >= LogLevel.DEBUG) {
|
|
38
|
-
// this.logger.log(message, ...optionalParams)
|
|
39
|
-
console.log(message);
|
|
40
|
-
}
|
|
41
|
-
}
|
|
42
|
-
warn(...message: any[]) {
|
|
43
|
-
throw new Error('Method not implemented.');
|
|
44
|
-
}
|
|
45
|
-
info(...message: any[]) {
|
|
46
|
-
throw new Error('Method not implemented.');
|
|
47
|
-
}
|
|
48
|
-
error(...message: any[]) {
|
|
49
|
-
throw new Error('Method not implemented.');
|
|
50
|
-
}
|
|
51
|
-
|
|
52
|
-
}
|
|
15
|
+
let ngxlogger: NGXLogger;
|
|
16
|
+
let customLogger = new CustomLogger(ngxlogger)
|
|
53
17
|
|
|
54
18
|
beforeEach(waitForAsync(() => {
|
|
55
|
-
TestBed
|
|
56
|
-
.overrideComponent(ConversationPreviewComponent, {
|
|
57
|
-
set: {
|
|
58
|
-
providers: [
|
|
59
|
-
{ provide: LoggerService, useClass: MockLoggerService }
|
|
60
|
-
]
|
|
61
|
-
}
|
|
62
|
-
})
|
|
63
|
-
.configureTestingModule({
|
|
19
|
+
TestBed.configureTestingModule({
|
|
64
20
|
declarations: [ ConversationPreviewComponent ],
|
|
65
21
|
providers: [LoggerService]
|
|
66
22
|
}).compileComponents();
|
|
@@ -69,15 +25,9 @@ describe('ConversationPreviewImageComponent', () => {
|
|
|
69
25
|
beforeEach(() => {
|
|
70
26
|
fixture = TestBed.createComponent(ConversationPreviewComponent);
|
|
71
27
|
component = fixture.componentInstance;
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
// spyOn(logger,"log").and.callThrough();
|
|
76
|
-
// const service = TestBed.inject(LoggerService)
|
|
77
|
-
// // const service = TestBed.inject(LoggerService) as LoggerService;
|
|
78
|
-
console.log('serivceeeeee', testBedService)
|
|
79
|
-
// component.logger = service
|
|
80
|
-
// component.logger = LoggerInstance.setInstance(service)
|
|
28
|
+
LoggerInstance.setInstance(customLogger)
|
|
29
|
+
let logger = LoggerInstance.getInstance()
|
|
30
|
+
component['logger']= logger
|
|
81
31
|
fixture.detectChanges();
|
|
82
32
|
});
|
|
83
33
|
|
|
@@ -4,11 +4,16 @@ import { ComponentFixture, TestBed, waitForAsync } from '@angular/core/testing';
|
|
|
4
4
|
import { ReactiveFormsModule } from '@angular/forms';
|
|
5
5
|
|
|
6
6
|
import { FormBuilderComponent } from './form-builder.component';
|
|
7
|
+
import { LoggerInstance } from 'src/chat21-core/providers/logger/loggerInstance';
|
|
8
|
+
import { NGXLogger } from 'ngx-logger';
|
|
9
|
+
import { CustomLogger } from 'src/chat21-core/providers/logger/customLogger';
|
|
7
10
|
|
|
8
11
|
describe('FormBuilderComponent', () => {
|
|
9
12
|
let component: FormBuilderComponent;
|
|
10
13
|
let fixture: ComponentFixture<FormBuilderComponent>;
|
|
11
|
-
|
|
14
|
+
let ngxlogger: NGXLogger;
|
|
15
|
+
let customLogger = new CustomLogger(ngxlogger)
|
|
16
|
+
|
|
12
17
|
beforeEach(waitForAsync(() => {
|
|
13
18
|
TestBed.configureTestingModule({
|
|
14
19
|
declarations: [ FormBuilderComponent ],
|
|
@@ -26,6 +31,9 @@ describe('FormBuilderComponent', () => {
|
|
|
26
31
|
beforeEach(() => {
|
|
27
32
|
fixture = TestBed.createComponent(FormBuilderComponent);
|
|
28
33
|
component = fixture.componentInstance;
|
|
34
|
+
LoggerInstance.setInstance(customLogger)
|
|
35
|
+
let logger = LoggerInstance.getInstance()
|
|
36
|
+
component['logger']= logger
|
|
29
37
|
fixture.detectChanges();
|
|
30
38
|
});
|
|
31
39
|
|
|
@@ -13,12 +13,12 @@
|
|
|
13
13
|
</small> - ->
|
|
14
14
|
</div> -->
|
|
15
15
|
<div class="form-group label-floating" id="div_input" #div_input
|
|
16
|
-
[ngClass]="{'is-empty': !form
|
|
16
|
+
[ngClass]="{'is-empty': !form?.controls[element.name]?.value}">
|
|
17
17
|
<label class="control-label">
|
|
18
|
-
{{element
|
|
18
|
+
{{element?.text}}
|
|
19
19
|
</label>
|
|
20
20
|
<textarea
|
|
21
|
-
[formControlName]="element
|
|
21
|
+
[formControlName]="element?.name"
|
|
22
22
|
[rows]="rows"
|
|
23
23
|
[tabIndex]="element?.tabIndex"
|
|
24
24
|
type="text"
|
|
@@ -29,10 +29,10 @@
|
|
|
29
29
|
(focusout)="onFocusOut()">
|
|
30
30
|
</textarea>
|
|
31
31
|
</div>
|
|
32
|
-
<div *ngIf="hasSubmitted && form
|
|
32
|
+
<div *ngIf="hasSubmitted && form?.controls[element.name].errors && form?.controls[element.name].hasError('required')" class="text-danger">
|
|
33
33
|
{{translationErrorLabelMap.get('LABEL_ERROR_FIELD_REQUIRED')}}
|
|
34
34
|
</div>
|
|
35
|
-
<div *ngIf="hasSubmitted && form
|
|
35
|
+
<div *ngIf="hasSubmitted && form?.controls[element.name].errors && form?.controls[element.name].hasError('pattern') && element?.errorLabel" class="text-danger">
|
|
36
36
|
{{element.errorLabel}}
|
|
37
37
|
</div>
|
|
38
38
|
</form>
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { waitForAsync, ComponentFixture, TestBed } from '@angular/core/testing';
|
|
2
|
-
import { FormGroupDirective } from '@angular/forms';
|
|
2
|
+
import { FormGroup, FormGroupDirective } from '@angular/forms';
|
|
3
3
|
|
|
4
4
|
import { FormTextareaComponent } from './form-textarea.component';
|
|
5
5
|
|
|
@@ -23,7 +23,7 @@ export class FormTextareaComponent implements OnInit {
|
|
|
23
23
|
|
|
24
24
|
ngOnInit() {
|
|
25
25
|
this.form = this.rootFormGroup.control as FormGroup;
|
|
26
|
-
if(this.form.controls && this.form.controls[this.controlName]){
|
|
26
|
+
if(this.form && this.form.controls && this.form.controls[this.controlName]){
|
|
27
27
|
this.form.controls[this.controlName].valueChanges.subscribe((value) => {
|
|
28
28
|
this.hasSubmitted= false;
|
|
29
29
|
this.setFormStyle();
|
|
@@ -1,5 +1,8 @@
|
|
|
1
1
|
import { NO_ERRORS_SCHEMA } from '@angular/core';
|
|
2
|
-
import {
|
|
2
|
+
import { ComponentFixture, TestBed, waitForAsync } from '@angular/core/testing';
|
|
3
|
+
import { NGXLogger } from 'ngx-logger';
|
|
4
|
+
import { CustomLogger } from 'src/chat21-core/providers/logger/customLogger';
|
|
5
|
+
import { LoggerInstance } from 'src/chat21-core/providers/logger/loggerInstance';
|
|
3
6
|
import { Globals } from '../../utils/globals';
|
|
4
7
|
|
|
5
8
|
import { HomeComponent } from './home.component';
|
|
@@ -7,12 +10,15 @@ import { HomeComponent } from './home.component';
|
|
|
7
10
|
describe('HomeComponent', () => {
|
|
8
11
|
let component: HomeComponent;
|
|
9
12
|
let fixture: ComponentFixture<HomeComponent>;
|
|
13
|
+
let ngxlogger: NGXLogger;
|
|
14
|
+
let customLogger = new CustomLogger(ngxlogger)
|
|
10
15
|
|
|
11
|
-
beforeEach(
|
|
16
|
+
beforeEach(waitForAsync(() => {
|
|
12
17
|
TestBed.configureTestingModule({
|
|
13
18
|
declarations: [ HomeComponent ],
|
|
14
19
|
providers: [
|
|
15
|
-
Globals
|
|
20
|
+
Globals,
|
|
21
|
+
NGXLogger
|
|
16
22
|
],
|
|
17
23
|
schemas: [NO_ERRORS_SCHEMA]
|
|
18
24
|
})
|
|
@@ -22,6 +28,9 @@ describe('HomeComponent', () => {
|
|
|
22
28
|
beforeEach(() => {
|
|
23
29
|
fixture = TestBed.createComponent(HomeComponent);
|
|
24
30
|
component = fixture.componentInstance;
|
|
31
|
+
let loggerInstance = LoggerInstance.setInstance(customLogger)
|
|
32
|
+
let logger = LoggerInstance.getInstance()
|
|
33
|
+
component['logger']= logger
|
|
25
34
|
fixture.detectChanges();
|
|
26
35
|
});
|
|
27
36
|
|
|
@@ -13,11 +13,16 @@ import { ImageRepoService } from '../../../chat21-core/providers/abstract/image-
|
|
|
13
13
|
import { ConversationsHandlerService } from '../../../chat21-core/providers/abstract/conversations-handler.service';
|
|
14
14
|
import { ArchivedConversationsHandlerService } from '../../../chat21-core/providers/abstract/archivedconversations-handler.service';
|
|
15
15
|
import { TranslateModule } from '@ngx-translate/core';
|
|
16
|
+
import { NGXLogger } from 'ngx-logger';
|
|
17
|
+
import { CustomLogger } from 'src/chat21-core/providers/logger/customLogger';
|
|
18
|
+
import { LoggerInstance } from 'src/chat21-core/providers/logger/loggerInstance';
|
|
16
19
|
|
|
17
20
|
describe('HomeConversationsComponent', () => {
|
|
18
21
|
let component: HomeConversationsComponent;
|
|
19
22
|
let fixture: ComponentFixture<HomeConversationsComponent>;
|
|
20
|
-
|
|
23
|
+
let ngxlogger: NGXLogger;
|
|
24
|
+
let customLogger = new CustomLogger(ngxlogger)
|
|
25
|
+
|
|
21
26
|
beforeEach(waitForAsync(() => {
|
|
22
27
|
TestBed.configureTestingModule({
|
|
23
28
|
declarations: [ HomeConversationsComponent ],
|
|
@@ -44,6 +49,9 @@ describe('HomeConversationsComponent', () => {
|
|
|
44
49
|
beforeEach(() => {
|
|
45
50
|
fixture = TestBed.createComponent(HomeConversationsComponent);
|
|
46
51
|
component = fixture.componentInstance;
|
|
52
|
+
LoggerInstance.setInstance(customLogger)
|
|
53
|
+
let logger = LoggerInstance.getInstance()
|
|
54
|
+
component['logger']= logger
|
|
47
55
|
fixture.detectChanges();
|
|
48
56
|
});
|
|
49
57
|
|
|
@@ -5,21 +5,16 @@ import { Globals } from '../../utils/globals';
|
|
|
5
5
|
|
|
6
6
|
import { ListAllConversationsComponent } from './list-all-conversations.component';
|
|
7
7
|
import { TranslateModule, TranslateService } from '@ngx-translate/core';
|
|
8
|
+
import { NGXLogger } from 'ngx-logger';
|
|
9
|
+
import { CustomLogger } from 'src/chat21-core/providers/logger/customLogger';
|
|
10
|
+
import { LoggerInstance } from 'src/chat21-core/providers/logger/loggerInstance';
|
|
8
11
|
|
|
9
12
|
describe('ListAllConversationsComponent', () => {
|
|
10
13
|
let component: ListAllConversationsComponent;
|
|
11
14
|
let fixture: ComponentFixture<ListAllConversationsComponent>;
|
|
15
|
+
let ngxlogger: NGXLogger;
|
|
16
|
+
let customLogger = new CustomLogger(ngxlogger)
|
|
12
17
|
|
|
13
|
-
class MockIterableDiffers implements IterableDiffers {
|
|
14
|
-
factories: IterableDifferFactory[];
|
|
15
|
-
find(iterable: any): IterableDifferFactory {
|
|
16
|
-
return
|
|
17
|
-
}
|
|
18
|
-
create(factories: IterableDifferFactory[], parent?: IterableDiffers): IterableDiffers {
|
|
19
|
-
return
|
|
20
|
-
}
|
|
21
|
-
}
|
|
22
|
-
|
|
23
18
|
beforeEach(waitForAsync(() => {
|
|
24
19
|
TestBed.configureTestingModule({
|
|
25
20
|
declarations: [ ListAllConversationsComponent ],
|
|
@@ -28,7 +23,7 @@ describe('ListAllConversationsComponent', () => {
|
|
|
28
23
|
],
|
|
29
24
|
providers: [
|
|
30
25
|
Globals,
|
|
31
|
-
|
|
26
|
+
IterableDiffers,
|
|
32
27
|
CustomTranslateService,
|
|
33
28
|
TranslateService
|
|
34
29
|
],
|
|
@@ -40,6 +35,9 @@ describe('ListAllConversationsComponent', () => {
|
|
|
40
35
|
beforeEach(() => {
|
|
41
36
|
fixture = TestBed.createComponent(ListAllConversationsComponent);
|
|
42
37
|
component = fixture.componentInstance;
|
|
38
|
+
LoggerInstance.setInstance(customLogger)
|
|
39
|
+
let logger = LoggerInstance.getInstance()
|
|
40
|
+
component['logger']= logger
|
|
43
41
|
fixture.detectChanges();
|
|
44
42
|
});
|
|
45
43
|
|
|
@@ -3,11 +3,16 @@ import { NO_ERRORS_SCHEMA } from '@angular/core';
|
|
|
3
3
|
import { ComponentFixture, TestBed, waitForAsync } from '@angular/core/testing';
|
|
4
4
|
|
|
5
5
|
import { ListConversationsComponent } from './list-conversations.component';
|
|
6
|
+
import { NGXLogger } from 'ngx-logger';
|
|
7
|
+
import { CustomLogger } from 'src/chat21-core/providers/logger/customLogger';
|
|
8
|
+
import { LoggerInstance } from 'src/chat21-core/providers/logger/loggerInstance';
|
|
6
9
|
|
|
7
10
|
describe('ListConversationsComponent', () => {
|
|
8
11
|
let component: ListConversationsComponent;
|
|
9
12
|
let fixture: ComponentFixture<ListConversationsComponent>;
|
|
10
|
-
|
|
13
|
+
let ngxlogger: NGXLogger;
|
|
14
|
+
let customLogger = new CustomLogger(ngxlogger)
|
|
15
|
+
|
|
11
16
|
beforeEach(waitForAsync(() => {
|
|
12
17
|
TestBed.configureTestingModule({
|
|
13
18
|
declarations: [ ListConversationsComponent ],
|
|
@@ -22,6 +27,9 @@ describe('ListConversationsComponent', () => {
|
|
|
22
27
|
beforeEach(() => {
|
|
23
28
|
fixture = TestBed.createComponent(ListConversationsComponent);
|
|
24
29
|
component = fixture.componentInstance;
|
|
30
|
+
LoggerInstance.setInstance(customLogger)
|
|
31
|
+
let logger = LoggerInstance.getInstance()
|
|
32
|
+
component['logger']= logger
|
|
25
33
|
fixture.detectChanges();
|
|
26
34
|
});
|
|
27
35
|
|