1 import { Component, Input } from '@angular/core';
2 import { ComponentFixture, TestBed } from '@angular/core/testing';
3 import { By } from '@angular/platform-browser';
4 import { ActivatedRoute, ParamMap } from '@angular/router';
5 import { IdlObject, IdlService } from '@eg/core/idl.service';
6 import { of } from 'rxjs';
7 import { BasicAdminPageComponent } from './basic-admin-page.component';
13 class MockTitleComponent {
14 @Input() prefix: string;
18 selector: 'eg-staff-banner',
21 class MockStaffBannerComponent {
22 @Input() bannerText: string;
26 selector: 'eg-admin-page',
29 class MockAdminPageComponent {
30 @Input() configLinkBasePath: string;
31 @Input() defaultNewRecord: IdlObject;
32 @Input() disableOrgFilter: boolean;
33 @Input() fieldOrder: string;
34 @Input() idlClass: string;
35 @Input() persistKeyPfx: string;
36 @Input() readonlyFields: string;
39 describe('Component: BasicAdminPage', () => {
40 let component: BasicAdminPageComponent;
41 let fixture: ComponentFixture<BasicAdminPageComponent>;
42 let idlServiceStub: Partial<IdlService>;
47 create: (cls: string, seed?: []) => {
53 field1(value: any): any {
59 classes: [{ tbl1: { table: 'schema1.table1' } }]
62 const emptyParamMap: ParamMap = {
63 has: (name: string) => false,
64 get: (name: string) => null,
65 getAll: (name: string) => [],
71 defaultNewRecord: { field1: 'value1' }
73 const parentRoute = { url: of('') };
74 const snapshot = { parent: { url: [{ path: '' }] } };
76 paramMap: of(emptyParamMap),
82 TestBed.configureTestingModule({
85 { provide: IdlService, useValue: idlServiceStub },
86 { provide: ActivatedRoute, useValue: routeStub }
89 BasicAdminPageComponent,
91 MockStaffBannerComponent,
92 MockAdminPageComponent
95 fixture = TestBed.createComponent(BasicAdminPageComponent);
96 component = fixture.componentInstance;
97 component.idlClass = 'tbl1';
98 fixture.detectChanges();
101 it('sets default new record from routing data', () => {
102 const adminPage: MockAdminPageComponent = fixture.debugElement.query(
103 By.directive(MockAdminPageComponent)).componentInstance;
104 expect(adminPage.defaultNewRecord.a[0]).toEqual('value1');