From 2c46b5a6b58740411f4c835659995f9ed37d900a Mon Sep 17 00:00:00 2001
From: shamoon <4887959+shamoon@users.noreply.github.com>
Date: Sat, 5 Oct 2024 19:03:43 -0700
Subject: [PATCH] Frontend tests, translations
---
src-ui/messages.xlf | 134 +++++++++++-------
.../manage/mail/mail.component.spec.ts | 46 +++++-
.../components/manage/mail/mail.component.ts | 12 +-
3 files changed, 131 insertions(+), 61 deletions(-)
diff --git a/src-ui/messages.xlf b/src-ui/messages.xlf
index 7838c63ed..cc6e0e6d8 100644
--- a/src-ui/messages.xlf
+++ b/src-ui/messages.xlf
@@ -730,7 +730,7 @@
src/app/components/manage/mail/mail.component.html
- 146
+ 164
src/app/components/manage/management-list/management-list.component.html
@@ -1096,19 +1096,19 @@
src/app/components/manage/mail/mail.component.html
- 41
+ 59
src/app/components/manage/mail/mail.component.html
- 51
+ 69
src/app/components/manage/mail/mail.component.html
- 108
+ 126
src/app/components/manage/mail/mail.component.html
- 120
+ 138
src/app/components/manage/management-list/management-list.component.html
@@ -1406,11 +1406,11 @@
src/app/components/manage/mail/mail.component.html
- 23
+ 33
src/app/components/manage/mail/mail.component.html
- 82
+ 100
src/app/components/manage/management-list/management-list.component.html
@@ -1505,19 +1505,19 @@
src/app/components/manage/mail/mail.component.html
- 42
+ 60
src/app/components/manage/mail/mail.component.html
- 54
+ 72
src/app/components/manage/mail/mail.component.html
- 109
+ 127
src/app/components/manage/mail/mail.component.html
- 123
+ 141
src/app/components/manage/management-list/management-list.component.html
@@ -1903,11 +1903,11 @@
src/app/components/manage/mail/mail.component.html
- 20
+ 30
src/app/components/manage/mail/mail.component.html
- 78
+ 96
src/app/components/manage/management-list/management-list.component.html
@@ -2231,11 +2231,11 @@
src/app/components/manage/mail/mail.component.ts
- 114
+ 160
src/app/components/manage/mail/mail.component.ts
- 194
+ 240
src/app/components/manage/management-list/management-list.component.ts
@@ -2376,7 +2376,7 @@
src/app/components/manage/mail/mail.component.html
- 22
+ 32
@@ -2434,19 +2434,19 @@
src/app/components/manage/mail/mail.component.html
- 40
+ 58
src/app/components/manage/mail/mail.component.html
- 48
+ 66
src/app/components/manage/mail/mail.component.html
- 107
+ 125
src/app/components/manage/mail/mail.component.html
- 117
+ 135
src/app/components/manage/management-list/management-list.component.html
@@ -2586,11 +2586,11 @@
src/app/components/manage/mail/mail.component.ts
- 116
+ 162
src/app/components/manage/mail/mail.component.ts
- 196
+ 242
src/app/components/manage/management-list/management-list.component.ts
@@ -3782,7 +3782,7 @@
src/app/components/manage/mail/mail.component.html
- 80
+ 98
@@ -3804,7 +3804,7 @@
src/app/components/manage/mail/mail.component.html
- 96
+ 114
src/app/components/manage/workflows/workflows.component.html
@@ -5140,11 +5140,11 @@
src/app/components/manage/mail/mail.component.html
- 110
+ 128
src/app/components/manage/mail/mail.component.html
- 128
+ 146
src/app/components/manage/workflows/workflows.component.html
@@ -5457,7 +5457,7 @@
src/app/components/manage/mail/mail.component.html
- 81
+ 99
src/app/components/manage/workflows/workflows.component.html
@@ -7591,46 +7591,60 @@
14
+
+ Connect Gmail Account
+
+ src/app/components/manage/mail/mail.component.html
+ 18
+
+
+
+ Connect Outlook Account
+
+ src/app/components/manage/mail/mail.component.html
+ 23
+
+
Server
src/app/components/manage/mail/mail.component.html
- 21
+ 31
No mail accounts defined.
src/app/components/manage/mail/mail.component.html
- 62
+ 80
Mail rules
src/app/components/manage/mail/mail.component.html
- 70
+ 88
Add Rule
src/app/components/manage/mail/mail.component.html
- 72
+ 90
Sort Order
src/app/components/manage/mail/mail.component.html
- 79
+ 97
Disabled
src/app/components/manage/mail/mail.component.html
- 96
+ 114
src/app/components/manage/workflows/workflows.component.html
@@ -7641,140 +7655,154 @@
No mail rules defined.
src/app/components/manage/mail/mail.component.html
- 137
+ 155
Error retrieving mail accounts
src/app/components/manage/mail/mail.component.ts
- 56
+ 81
Error retrieving mail rules
src/app/components/manage/mail/mail.component.ts
- 70
+ 95
+
+
+
+ OAuth2 authentication success
+
+ src/app/components/manage/mail/mail.component.ts
+ 103
+
+
+
+ OAuth2 authentication failed, see logs for details
+
+ src/app/components/manage/mail/mail.component.ts
+ 114
Saved account "".
src/app/components/manage/mail/mail.component.ts
- 92
+ 138
Error saving account.
src/app/components/manage/mail/mail.component.ts
- 104
+ 150
Confirm delete mail account
src/app/components/manage/mail/mail.component.ts
- 112
+ 158
This operation will permanently delete this mail account.
src/app/components/manage/mail/mail.component.ts
- 113
+ 159
Deleted mail account
src/app/components/manage/mail/mail.component.ts
- 122
+ 168
Error deleting mail account.
src/app/components/manage/mail/mail.component.ts
- 132
+ 178
Saved rule "".
src/app/components/manage/mail/mail.component.ts
- 151
+ 197
Error saving rule.
src/app/components/manage/mail/mail.component.ts
- 162
+ 208
Rule "" enabled.
src/app/components/manage/mail/mail.component.ts
- 178
+ 224
Rule "" disabled.
src/app/components/manage/mail/mail.component.ts
- 179
+ 225
Error toggling rule.
src/app/components/manage/mail/mail.component.ts
- 183
+ 229
Confirm delete mail rule
src/app/components/manage/mail/mail.component.ts
- 192
+ 238
This operation will permanently delete this mail rule.
src/app/components/manage/mail/mail.component.ts
- 193
+ 239
Deleted mail rule
src/app/components/manage/mail/mail.component.ts
- 202
+ 248
Error deleting mail rule.
src/app/components/manage/mail/mail.component.ts
- 211
+ 257
Permissions updated
src/app/components/manage/mail/mail.component.ts
- 233
+ 279
Error updating permissions
src/app/components/manage/mail/mail.component.ts
- 238
+ 284
src/app/components/manage/management-list/management-list.component.ts
diff --git a/src-ui/src/app/components/manage/mail/mail.component.spec.ts b/src-ui/src/app/components/manage/mail/mail.component.spec.ts
index 14cd10944..a69feef1b 100644
--- a/src-ui/src/app/components/manage/mail/mail.component.spec.ts
+++ b/src-ui/src/app/components/manage/mail/mail.component.spec.ts
@@ -13,7 +13,7 @@ import {
import { NgSelectModule } from '@ng-select/ng-select'
import { of, throwError } from 'rxjs'
import { routes } from 'src/app/app-routing.module'
-import { MailAccount } from 'src/app/data/mail-account'
+import { MailAccount, MailAccountType } from 'src/app/data/mail-account'
import { MailRule } from 'src/app/data/mail-rule'
import { IfOwnerDirective } from 'src/app/directives/if-owner.directive'
import { IfPermissionsDirective } from 'src/app/directives/if-permissions.directive'
@@ -44,10 +44,13 @@ import { NgxBootstrapIconsModule, allIcons } from 'ngx-bootstrap-icons'
import { SwitchComponent } from '../../common/input/switch/switch.component'
import { provideHttpClient, withInterceptorsFromDi } from '@angular/common/http'
import { By } from '@angular/platform-browser'
+import { ActivatedRoute, convertToParamMap } from '@angular/router'
+import { SettingsService } from 'src/app/services/settings.service'
const mailAccounts = [
- { id: 1, name: 'account1' },
- { id: 2, name: 'account2' },
+ { id: 1, name: 'account1', account_type: MailAccountType.IMAP },
+ { id: 2, name: 'account2', account_type: MailAccountType.IMAP },
+ { id: 3, name: 'account3', accout_type: MailAccountType.Gmail },
]
const mailRules = [
{ id: 1, name: 'rule1', owner: 1, account: 1, enabled: true },
@@ -62,6 +65,8 @@ describe('MailComponent', () => {
let modalService: NgbModal
let toastService: ToastService
let permissionsService: PermissionsService
+ let activatedRoute: ActivatedRoute
+ let settingsService: SettingsService
beforeEach(() => {
TestBed.configureTestingModule({
@@ -110,6 +115,9 @@ describe('MailComponent', () => {
modalService = TestBed.inject(NgbModal)
toastService = TestBed.inject(ToastService)
permissionsService = TestBed.inject(PermissionsService)
+ activatedRoute = TestBed.inject(ActivatedRoute)
+ settingsService = TestBed.inject(SettingsService)
+ settingsService.currentUser = { id: 1 }
jest.spyOn(permissionsService, 'currentUserCan').mockReturnValue(true)
jest
.spyOn(permissionsService, 'currentUserHasObjectPermissions')
@@ -348,4 +356,36 @@ describe('MailComponent', () => {
expect(patchSpy).toHaveBeenCalled()
expect(toastInfoSpy).toHaveBeenCalled()
})
+
+ it('should show success message when oauth account is connected', () => {
+ const queryParams = { oauth_success: '1' }
+ jest
+ .spyOn(activatedRoute, 'queryParamMap', 'get')
+ .mockReturnValue(of(convertToParamMap(queryParams)))
+ const toastInfoSpy = jest.spyOn(toastService, 'showInfo')
+ completeSetup()
+ expect(toastInfoSpy).toHaveBeenCalled()
+ })
+
+ it('should show error message when oauth account connect fails', () => {
+ const queryParams = { oauth_success: '0' }
+ jest
+ .spyOn(activatedRoute, 'queryParamMap', 'get')
+ .mockReturnValue(of(convertToParamMap(queryParams)))
+ const toastErrorSpy = jest.spyOn(toastService, 'showError')
+ completeSetup()
+ expect(toastErrorSpy).toHaveBeenCalled()
+ })
+
+ it('should open account edit dialog if oauth account is connected', () => {
+ const queryParams = { oauth_success: '1', oauth_account: '3' }
+ jest
+ .spyOn(activatedRoute, 'queryParamMap', 'get')
+ .mockReturnValue(of(convertToParamMap(queryParams)))
+ completeSetup()
+ component.oAuthAccountId = 3
+ const editSpy = jest.spyOn(component, 'editMailAccount')
+ component.ngOnInit()
+ expect(editSpy).toHaveBeenCalled()
+ })
})
diff --git a/src-ui/src/app/components/manage/mail/mail.component.ts b/src-ui/src/app/components/manage/mail/mail.component.ts
index ca93b7a16..0e72d7b92 100644
--- a/src-ui/src/app/components/manage/mail/mail.component.ts
+++ b/src-ui/src/app/components/manage/mail/mail.component.ts
@@ -37,7 +37,7 @@ export class MailComponent
mailRules: MailRule[] = []
unsubscribeNotifier: Subject = new Subject()
- oAuthAccoundId: number
+ oAuthAccountId: number
public get gmailOAuthUrl(): string {
return this.settingsService.get(SETTINGS_KEYS.GMAIL_OAUTH_URL)
@@ -66,10 +66,12 @@ export class MailComponent
.subscribe({
next: (r) => {
this.mailAccounts = r.results
- if (this.oAuthAccoundId) {
+ console.log(this.mailAccounts, this.oAuthAccountId)
+
+ if (this.oAuthAccountId) {
this.editMailAccount(
this.mailAccounts.find(
- (account) => account.id === this.oAuthAccoundId
+ (account) => account.id === this.oAuthAccountId
)
)
}
@@ -99,11 +101,11 @@ export class MailComponent
const success = params.get('oauth_success') === '1'
if (success) {
this.toastService.showInfo($localize`OAuth2 authentication success`)
- this.oAuthAccoundId = parseInt(params.get('account_id'))
+ this.oAuthAccountId = parseInt(params.get('account_id'))
if (this.mailAccounts.length > 0) {
this.editMailAccount(
this.mailAccounts.find(
- (account) => account.id === this.oAuthAccoundId
+ (account) => account.id === this.oAuthAccountId
)
)
}