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() hideClearFilters: boolean;
34 @Input() fieldOrder: string;
35 @Input() idlClass: string;
36 @Input() persistKeyPfx: string;
37 @Input() readonlyFields: string;
38 @Input() enableUndelete: boolean;
39 @Input() recordLabel: string;
40 @Input() orgDefaultAllowed: string;
43 describe('Component: BasicAdminPage', () => {
44 let component: BasicAdminPageComponent;
45 let fixture: ComponentFixture<BasicAdminPageComponent>;
46 let idlServiceStub: Partial<IdlService>;
51 create: (cls: string, seed?: []) => {
57 field1(value: any): any {
63 classes: [{ tbl1: { table: 'schema1.table1' } }]
66 const emptyParamMap: ParamMap = {
67 has: (name: string) => false,
68 get: (name: string) => null,
69 getAll: (name: string) => [],
75 defaultNewRecord: { field1: 'value1' },
78 const parentRoute = { url: of('') };
79 const snapshot = { parent: { url: [{ path: '' }] } };
81 paramMap: of(emptyParamMap),
87 TestBed.configureTestingModule({
90 { provide: IdlService, useValue: idlServiceStub },
91 { provide: ActivatedRoute, useValue: routeStub }
94 BasicAdminPageComponent,
96 MockStaffBannerComponent,
97 MockAdminPageComponent
100 fixture = TestBed.createComponent(BasicAdminPageComponent);
101 component = fixture.componentInstance;
102 component.idlClass = 'tbl1';
103 fixture.detectChanges();
106 it('sets default new record from routing data', () => {
107 const adminPage: MockAdminPageComponent = fixture.debugElement.query(
108 By.directive(MockAdminPageComponent)).componentInstance;
109 expect(adminPage.defaultNewRecord.a[0]).toEqual('value1');
111 it('sets enableUndelete from routing data', () => {
112 const adminPage: MockAdminPageComponent = fixture.debugElement.query(
113 By.directive(MockAdminPageComponent)).componentInstance;
114 expect(adminPage.enableUndelete).toEqual(true);