Refactor to django-messages.service

This commit is contained in:
shamoon 2024-01-05 11:19:11 -08:00 committed by Moritz Pflanzer
parent 93750663aa
commit db00e9efac
4 changed files with 20 additions and 19 deletions

View File

@ -23,7 +23,7 @@ import { of, throwError } from 'rxjs'
import { ToastService } from 'src/app/services/toast.service' import { ToastService } from 'src/app/services/toast.service'
import { import {
DjangoMessageLevel, DjangoMessageLevel,
MessagesService, DjangoMessagesService,
} from 'src/app/services/messages.service' } from 'src/app/services/messages.service'
import { environment } from 'src/environments/environment' import { environment } from 'src/environments/environment'
import { OpenDocumentsService } from 'src/app/services/open-documents.service' import { OpenDocumentsService } from 'src/app/services/open-documents.service'
@ -87,7 +87,7 @@ describe('AppFrameComponent', () => {
let permissionsService: PermissionsService let permissionsService: PermissionsService
let remoteVersionService: RemoteVersionService let remoteVersionService: RemoteVersionService
let toastService: ToastService let toastService: ToastService
let messagesService: MessagesService let messagesService: DjangoMessagesService
let openDocumentsService: OpenDocumentsService let openDocumentsService: OpenDocumentsService
let searchService: SearchService let searchService: SearchService
let documentListViewService: DocumentListViewService let documentListViewService: DocumentListViewService
@ -128,7 +128,7 @@ describe('AppFrameComponent', () => {
RemoteVersionService, RemoteVersionService,
IfPermissionsDirective, IfPermissionsDirective,
ToastService, ToastService,
MessagesService, DjangoMessagesService,
OpenDocumentsService, OpenDocumentsService,
SearchService, SearchService,
NgbModal, NgbModal,
@ -157,7 +157,7 @@ describe('AppFrameComponent', () => {
permissionsService = TestBed.inject(PermissionsService) permissionsService = TestBed.inject(PermissionsService)
remoteVersionService = TestBed.inject(RemoteVersionService) remoteVersionService = TestBed.inject(RemoteVersionService)
toastService = TestBed.inject(ToastService) toastService = TestBed.inject(ToastService)
messagesService = TestBed.inject(MessagesService) messagesService = TestBed.inject(DjangoMessagesService)
openDocumentsService = TestBed.inject(OpenDocumentsService) openDocumentsService = TestBed.inject(OpenDocumentsService)
searchService = TestBed.inject(SearchService) searchService = TestBed.inject(SearchService)
documentListViewService = TestBed.inject(DocumentListViewService) documentListViewService = TestBed.inject(DocumentListViewService)

View File

@ -14,8 +14,8 @@ import { Document } from 'src/app/data/document'
import { OpenDocumentsService } from 'src/app/services/open-documents.service' import { OpenDocumentsService } from 'src/app/services/open-documents.service'
import { import {
DjangoMessageLevel, DjangoMessageLevel,
MessagesService, DjangoMessagesService,
} from 'src/app/services/messages.service' } from 'src/app/services/django-messages.service'
import { SavedViewService } from 'src/app/services/rest/saved-view.service' import { SavedViewService } from 'src/app/services/rest/saved-view.service'
import { SearchService } from 'src/app/services/rest/search.service' import { SearchService } from 'src/app/services/rest/search.service'
import { environment } from 'src/environments/environment' import { environment } from 'src/environments/environment'
@ -77,8 +77,8 @@ export class AppFrameComponent
public tasksService: TasksService, public tasksService: TasksService,
private readonly toastService: ToastService, private readonly toastService: ToastService,
private modalService: NgbModal, private modalService: NgbModal,
permissionsService: PermissionsService, public permissionsService: PermissionsService,
private messagesService: MessagesService private djangoMessagesService: DjangoMessagesService
) { ) {
super() super()
@ -98,7 +98,7 @@ export class AppFrameComponent
} }
this.tasksService.reload() this.tasksService.reload()
this.messagesService.get().forEach((message) => { this.djangoMessagesService.get().forEach((message) => {
switch (message.level) { switch (message.level) {
case DjangoMessageLevel.ERROR: case DjangoMessageLevel.ERROR:
case DjangoMessageLevel.WARNING: case DjangoMessageLevel.WARNING:

View File

@ -1,26 +1,27 @@
import { TestBed } from '@angular/core/testing' import { TestBed } from '@angular/core/testing'
import { DjangoMessageLevel, MessagesService } from './messages.service' import {
DjangoMessageLevel,
import { environment } from 'src/environments/environment' DjangoMessagesService,
} from './django-messages.service'
const messages = [ const messages = [
{ level: DjangoMessageLevel.ERROR, message: 'Error Message' }, { level: DjangoMessageLevel.ERROR, message: 'Error Message' },
{ level: DjangoMessageLevel.INFO, message: 'Info Message' }, { level: DjangoMessageLevel.INFO, message: 'Info Message' },
] ]
describe('MessagesService', () => { describe('DjangoMessagesService', () => {
let service: MessagesService let service: DjangoMessagesService
beforeEach(() => { beforeEach(() => {
window['DJANGO_MESSAGES'] = messages window['DJANGO_MESSAGES'] = messages
TestBed.configureTestingModule({ TestBed.configureTestingModule({
providers: [MessagesService], providers: [DjangoMessagesService],
}) })
service = TestBed.inject(MessagesService) service = TestBed.inject(DjangoMessagesService)
}) })
it('calls retrieves global django messages if present', () => { it('should retrieve global django messages if present', () => {
expect(service.get()).toEqual(messages) expect(service.get()).toEqual(messages)
window['DJANGO_MESSAGES'] = undefined window['DJANGO_MESSAGES'] = undefined

View File

@ -17,11 +17,11 @@ export interface DjangoMessage {
@Injectable({ @Injectable({
providedIn: 'root', providedIn: 'root',
}) })
export class MessagesService { export class DjangoMessagesService {
constructor() {} constructor() {}
get(): DjangoMessage[] { get(): DjangoMessage[] {
// These are embedded in the HTML as raw JS, kept as a service for convenience // These are embedded in the HTML as raw JS, the service is for convenience
return window['DJANGO_MESSAGES'] ?? [] return window['DJANGO_MESSAGES'] ?? []
} }
} }