Actually leave it to refresh on test, just make sure we dont overwrite
This commit is contained in:
parent
a4fd5fa7f5
commit
2b1087d837
@ -11,7 +11,7 @@ import {
|
|||||||
import { FormsModule, ReactiveFormsModule } from '@angular/forms'
|
import { FormsModule, ReactiveFormsModule } from '@angular/forms'
|
||||||
import { NgbActiveModal, NgbModule } from '@ng-bootstrap/ng-bootstrap'
|
import { NgbActiveModal, NgbModule } from '@ng-bootstrap/ng-bootstrap'
|
||||||
import { NgSelectModule } from '@ng-select/ng-select'
|
import { NgSelectModule } from '@ng-select/ng-select'
|
||||||
import { IMAPSecurity } from 'src/app/data/mail-account'
|
import { IMAPSecurity, MailAccountType } from 'src/app/data/mail-account'
|
||||||
import { IfOwnerDirective } from 'src/app/directives/if-owner.directive'
|
import { IfOwnerDirective } from 'src/app/directives/if-owner.directive'
|
||||||
import { IfPermissionsDirective } from 'src/app/directives/if-permissions.directive'
|
import { IfPermissionsDirective } from 'src/app/directives/if-permissions.directive'
|
||||||
import { SettingsService } from 'src/app/services/settings.service'
|
import { SettingsService } from 'src/app/services/settings.service'
|
||||||
@ -82,6 +82,7 @@ describe('MailAccountEditDialogComponent', () => {
|
|||||||
imap_port: 443,
|
imap_port: 443,
|
||||||
imap_security: IMAPSecurity.SSL,
|
imap_security: IMAPSecurity.SSL,
|
||||||
is_token: false,
|
is_token: false,
|
||||||
|
account_type: MailAccountType.IMAP,
|
||||||
}
|
}
|
||||||
|
|
||||||
// success
|
// success
|
||||||
|
@ -4,7 +4,7 @@ import { TestBed } from '@angular/core/testing'
|
|||||||
import { environment } from 'src/environments/environment'
|
import { environment } from 'src/environments/environment'
|
||||||
import { commonAbstractPaperlessServiceTests } from './abstract-paperless-service.spec'
|
import { commonAbstractPaperlessServiceTests } from './abstract-paperless-service.spec'
|
||||||
import { MailAccountService } from './mail-account.service'
|
import { MailAccountService } from './mail-account.service'
|
||||||
import { IMAPSecurity } from 'src/app/data/mail-account'
|
import { IMAPSecurity, MailAccountType } from 'src/app/data/mail-account'
|
||||||
|
|
||||||
let httpTestingController: HttpTestingController
|
let httpTestingController: HttpTestingController
|
||||||
let service: MailAccountService
|
let service: MailAccountService
|
||||||
@ -20,6 +20,7 @@ const mail_accounts = [
|
|||||||
username: 'user',
|
username: 'user',
|
||||||
password: 'pass',
|
password: 'pass',
|
||||||
is_token: false,
|
is_token: false,
|
||||||
|
account_type: MailAccountType.IMAP,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name: 'Mail Account 2',
|
name: 'Mail Account 2',
|
||||||
@ -30,6 +31,7 @@ const mail_accounts = [
|
|||||||
username: 'user',
|
username: 'user',
|
||||||
password: 'pass',
|
password: 'pass',
|
||||||
is_token: false,
|
is_token: false,
|
||||||
|
account_type: MailAccountType.IMAP,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name: 'Mail Account 3',
|
name: 'Mail Account 3',
|
||||||
@ -40,6 +42,7 @@ const mail_accounts = [
|
|||||||
username: 'user',
|
username: 'user',
|
||||||
password: 'pass',
|
password: 'pass',
|
||||||
is_token: false,
|
is_token: false,
|
||||||
|
account_type: MailAccountType.IMAP,
|
||||||
},
|
},
|
||||||
]
|
]
|
||||||
|
|
||||||
@ -55,20 +58,6 @@ describe(`Additional service tests for MailAccountService`, () => {
|
|||||||
expect(req.request.method).toEqual('POST')
|
expect(req.request.method).toEqual('POST')
|
||||||
})
|
})
|
||||||
|
|
||||||
it('should support patchMany', () => {
|
|
||||||
subscription = service.patchMany(mail_accounts).subscribe()
|
|
||||||
mail_accounts.forEach((mail_account) => {
|
|
||||||
const req = httpTestingController.expectOne(
|
|
||||||
`${environment.apiBaseUrl}${endpoint}/${mail_account.id}/`
|
|
||||||
)
|
|
||||||
expect(req.request.method).toEqual('PATCH')
|
|
||||||
req.flush(mail_account)
|
|
||||||
})
|
|
||||||
httpTestingController.expectOne(
|
|
||||||
`${environment.apiBaseUrl}${endpoint}/?page=1&page_size=100000`
|
|
||||||
)
|
|
||||||
})
|
|
||||||
|
|
||||||
it('should support reload', () => {
|
it('should support reload', () => {
|
||||||
service['reload']()
|
service['reload']()
|
||||||
const req = httpTestingController.expectOne(
|
const req = httpTestingController.expectOne(
|
||||||
|
@ -1,6 +1,5 @@
|
|||||||
import { HttpClient } from '@angular/common/http'
|
import { HttpClient } from '@angular/common/http'
|
||||||
import { Injectable } from '@angular/core'
|
import { Injectable } from '@angular/core'
|
||||||
import { combineLatest, Observable } from 'rxjs'
|
|
||||||
import { tap } from 'rxjs/operators'
|
import { tap } from 'rxjs/operators'
|
||||||
import { MailAccount } from 'src/app/data/mail-account'
|
import { MailAccount } from 'src/app/data/mail-account'
|
||||||
import { AbstractPaperlessService } from './abstract-paperless-service'
|
import { AbstractPaperlessService } from './abstract-paperless-service'
|
||||||
@ -34,15 +33,12 @@ export class MailAccountService extends AbstractPaperlessService<MailAccount> {
|
|||||||
}
|
}
|
||||||
|
|
||||||
update(o: MailAccount) {
|
update(o: MailAccount) {
|
||||||
|
// Remove refresh_token and expiration from the object before updating
|
||||||
|
delete o.refresh_token
|
||||||
|
delete o.expiration
|
||||||
return super.update(o).pipe(tap(() => this.reload()))
|
return super.update(o).pipe(tap(() => this.reload()))
|
||||||
}
|
}
|
||||||
|
|
||||||
patchMany(objects: MailAccount[]): Observable<MailAccount[]> {
|
|
||||||
return combineLatest(objects.map((o) => super.patch(o))).pipe(
|
|
||||||
tap(() => this.reload())
|
|
||||||
)
|
|
||||||
}
|
|
||||||
|
|
||||||
delete(o: MailAccount) {
|
delete(o: MailAccount) {
|
||||||
return super.delete(o).pipe(tap(() => this.reload()))
|
return super.delete(o).pipe(tap(() => this.reload()))
|
||||||
}
|
}
|
||||||
|
@ -76,21 +76,6 @@ const mail_rules = [
|
|||||||
commonAbstractPaperlessServiceTests(endpoint, MailRuleService)
|
commonAbstractPaperlessServiceTests(endpoint, MailRuleService)
|
||||||
|
|
||||||
describe(`Additional service tests for MailRuleService`, () => {
|
describe(`Additional service tests for MailRuleService`, () => {
|
||||||
it('should support patchMany', () => {
|
|
||||||
subscription = service.patchMany(mail_rules).subscribe()
|
|
||||||
mail_rules.forEach((mail_rule) => {
|
|
||||||
const req = httpTestingController.expectOne(
|
|
||||||
`${environment.apiBaseUrl}${endpoint}/${mail_rule.id}/`
|
|
||||||
)
|
|
||||||
expect(req.request.method).toEqual('PATCH')
|
|
||||||
req.flush(mail_rule)
|
|
||||||
})
|
|
||||||
const reloadReq = httpTestingController.expectOne(
|
|
||||||
`${environment.apiBaseUrl}${endpoint}/?page=1&page_size=100000`
|
|
||||||
)
|
|
||||||
reloadReq.flush({ results: mail_rules })
|
|
||||||
})
|
|
||||||
|
|
||||||
it('should support reload', () => {
|
it('should support reload', () => {
|
||||||
service['reload']()
|
service['reload']()
|
||||||
const req = httpTestingController.expectOne(
|
const req = httpTestingController.expectOne(
|
||||||
|
@ -37,12 +37,6 @@ export class MailRuleService extends AbstractPaperlessService<MailRule> {
|
|||||||
return super.update(o).pipe(tap(() => this.reload()))
|
return super.update(o).pipe(tap(() => this.reload()))
|
||||||
}
|
}
|
||||||
|
|
||||||
patchMany(objects: MailRule[]): Observable<MailRule[]> {
|
|
||||||
return combineLatest(objects.map((o) => super.patch(o))).pipe(
|
|
||||||
tap(() => this.reload())
|
|
||||||
)
|
|
||||||
}
|
|
||||||
|
|
||||||
delete(o: MailRule) {
|
delete(o: MailRule) {
|
||||||
return super.delete(o).pipe(tap(() => this.reload()))
|
return super.delete(o).pipe(tap(() => this.reload()))
|
||||||
}
|
}
|
||||||
|
@ -80,8 +80,10 @@ class MailAccountTestView(GenericAPIView):
|
|||||||
and account.expiration is not None
|
and account.expiration is not None
|
||||||
and account.expiration < timezone.now()
|
and account.expiration < timezone.now()
|
||||||
):
|
):
|
||||||
if refresh_oauth_token(account):
|
if refresh_oauth_token(existing_account):
|
||||||
account.refresh_from_db()
|
# User is not changing password and token needs to be refreshed
|
||||||
|
existing_account.refresh_from_db()
|
||||||
|
account.password = existing_account.password
|
||||||
else:
|
else:
|
||||||
raise MailError("Unable to refresh oauth token")
|
raise MailError("Unable to refresh oauth token")
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user