bixi
Version:
企业级中后台前端解决方案
70 lines (61 loc) • 1.99 kB
text/typescript
import { ComponentFixture, TestBed } from '@angular/core/testing';
import { By } from '@angular/platform-browser';
import { Component } from '@angular/core';
import { BixiTimeModule } from './time.module';
import * as moment from 'dayjs';
import { NzSafeAny } from 'ng-zorro-antd/core/types';
const dayjs = moment as NzSafeAny;
const time = 1599016962923;
const format = 'YYYY/MM/DD HH:mm';
const relative = (dayjs(time) as NzSafeAny).fromNow();
const absolute = dayjs(time).format(format);
describe('#@bixi/core bix-time', () => {
let fixture: ComponentFixture<TestComponent>;
beforeEach(() => {
TestBed.configureTestingModule({
imports: [BixiTimeModule],
declarations: [TestComponent],
});
fixture = TestBed.createComponent(TestComponent);
fixture.detectChanges();
});
function getTimeStr() {
const dom = fixture.debugElement.query(By.css('.bixi-time'));
return dom.nativeElement.textContent.trim();
}
it('#invalid time', () => {
fixture.componentInstance.time = 'xjxhsjhgbh';
fixture.detectChanges();
expect(getTimeStr()).toBe('-');
});
it('#string time', () => {
fixture.componentInstance.time = '2020-09-01T20:09:20';
fixture.componentInstance.relative = false;
fixture.detectChanges();
expect(getTimeStr()).toBe('2020/09/01 20:09');
})
it('#absolute time', () => {
expect(getTimeStr()).toBe(absolute);
});
it('#relative time', () => {
fixture.componentInstance.relative = true;
fixture.detectChanges();
expect(getTimeStr()).toBe(relative);
});
it('#format', () => {
fixture.componentInstance.format = 'YYYY/MM HH:mm';
fixture.detectChanges();
expect(getTimeStr()).toBe(dayjs(time).format('YYYY/MM HH:mm'));
});
// TODO: add tooltiip test
});
({
template: `
<bixi-time [time]="time" [relative]="relative" [format]="format"></bixi-time>
`,
})
class TestComponent {
time: string | number = time;
relative = false;
format = format;
}