number-cruncher
Version:
Calculate total time based on lines of input with numbers on the end.
62 lines (51 loc) • 1.93 kB
text/typescript
import { HttpClientTestingModule } from '@angular/common/http/testing';
import { ComponentFixture, TestBed } from '@angular/core/testing';
import { AppComponent } from './app.component';
import { LoadService } from './load.service';
describe('AppComponent', () => {
let fixture: ComponentFixture<AppComponent>;
let app: AppComponent;
beforeEach(async () => {
await TestBed.configureTestingModule({
declarations: [AppComponent],
providers: [LoadService],
imports: [HttpClientTestingModule]
}).compileComponents();
fixture = TestBed.createComponent(AppComponent);
app = fixture.componentInstance;
});
it('should check the title', () => {
expect(app.title).toBe('Number Cruncher');
});
it('should check initial total/average', () => {
expect(app.total).toBe(0.0);
expect(app.average).toBe(0.0);
});
it('should check that the total/average is reset to 0.0', () => {
app.total = 1;
app.average = 1;
app.clearText();
expect(app.total).toBe(0);
expect(app.average).toBe(0);
});
it('should ensure parsing occurs properly for decimals', () => {
app.parse('test1 1.1\ntest2 1.2');
expect(app.total).toBe(2.3);
expect(app.average).toBe(1.15);
});
it('should ensure parsing occurs properly for h:mm format', () => {
app.parse('test 1 1:06\ntest 2 1:12');
expect(app.total).toBe(2.3);
expect(app.average).toBe(1.15);
});
it('should handle parsing empty text', () => {
app.parse('');
expect(app.total).toBe(0);
expect(app.average).toBe(0);
});
it('should handle loading empty url', () => {
app.loadInput('');
expect(app.total).toBe(0);
expect(app.average).toBe(0);
});
});