66 lines
2.3 KiB
TypeScript
66 lines
2.3 KiB
TypeScript
import { describe, it, expect, vi, beforeEach } from 'vitest';
|
|
import { ComponentFixture, TestBed } from '@angular/core/testing';
|
|
import { provideRouter, ActivatedRoute } from '@angular/router';
|
|
import { TaskDetailPage } from '@app/features/tasks/feature/task-detail-page/task-detail-page';
|
|
import { TaskStore } from '@app/features/tasks/data-access/store/task-store';
|
|
import { TaskService } from '@app/features/tasks/data-access/services/task';
|
|
import { of } from 'rxjs';
|
|
import { TaskBuilder } from '@tests/builders/task.builder';
|
|
|
|
describe('TaskDetailPage', () => {
|
|
let component: TaskDetailPage;
|
|
let fixture: ComponentFixture<TaskDetailPage>;
|
|
let taskService: TaskService;
|
|
|
|
beforeEach(async () => {
|
|
taskService = {
|
|
getById: vi.fn().mockReturnValue(of(new TaskBuilder().build())),
|
|
update: vi.fn().mockReturnValue(of(new TaskBuilder().build())),
|
|
transition: vi.fn().mockReturnValue(of(new TaskBuilder().build())),
|
|
delete: vi.fn().mockReturnValue(of(undefined)),
|
|
addNote: vi.fn().mockReturnValue(of(new TaskBuilder().build())),
|
|
deleteNote: vi.fn().mockReturnValue(of(new TaskBuilder().build())),
|
|
} as unknown as TaskService;
|
|
|
|
await TestBed.configureTestingModule({
|
|
imports: [TaskDetailPage],
|
|
providers: [
|
|
provideRouter([]),
|
|
{
|
|
provide: ActivatedRoute,
|
|
useValue: {
|
|
snapshot: {
|
|
paramMap: {
|
|
get: vi.fn().mockReturnValue('task-1'),
|
|
},
|
|
},
|
|
},
|
|
},
|
|
{ provide: TaskService, useValue: taskService },
|
|
],
|
|
}).compileComponents();
|
|
|
|
fixture = TestBed.createComponent(TaskDetailPage);
|
|
component = fixture.componentInstance;
|
|
fixture.detectChanges();
|
|
});
|
|
|
|
it('should create', () => {
|
|
expect(component).toBeTruthy();
|
|
});
|
|
|
|
it('should return current state from task history', () => {
|
|
const store = TestBed.inject(TaskStore);
|
|
store.setSelectedTask(new TaskBuilder().withState('active').build());
|
|
|
|
expect(component.currentState).toBe('active');
|
|
});
|
|
|
|
it('should return null for currentState when task has empty history', () => {
|
|
const store = TestBed.inject(TaskStore);
|
|
store.setSelectedTask(new TaskBuilder().withStateHistory([]).build());
|
|
|
|
expect(component.currentState).toBeNull();
|
|
});
|
|
});
|