50 lines
1.5 KiB
TypeScript
50 lines
1.5 KiB
TypeScript
import { ComponentFixture, TestBed } from '@angular/core/testing';
|
|
|
|
import { ChainForm } from './chain-form';
|
|
import { provideTranslateService } from '@ngx-translate/core';
|
|
import { Component } from '@angular/core';
|
|
import { ImageUploader } from '../../../../components/image-uploader/image-uploader';
|
|
import { By } from '@angular/platform-browser';
|
|
|
|
@Component({
|
|
template: ``
|
|
})
|
|
class ImageUploaderMock extends ImageUploader {
|
|
|
|
}
|
|
|
|
describe('ChainForm', () => {
|
|
let component: ChainForm;
|
|
let fixture: ComponentFixture<ChainForm>;
|
|
|
|
beforeEach(async () => {
|
|
TestBed.overrideComponent(ImageUploader, {
|
|
remove: { imports: [ImageUploader] },
|
|
add: { imports: [ImageUploaderMock] },
|
|
});
|
|
|
|
await TestBed.configureTestingModule({
|
|
imports: [ChainForm],
|
|
providers: [provideTranslateService()]
|
|
})
|
|
.compileComponents();
|
|
|
|
fixture = TestBed.createComponent(ChainForm);
|
|
component = fixture.componentInstance;
|
|
await fixture.whenStable();
|
|
});
|
|
|
|
it('should create', () => {
|
|
expect(component).toBeTruthy();
|
|
});
|
|
|
|
it('should populate form with emitted files', async () => {
|
|
const FILE_MOCK = new File([], 'mock');
|
|
const patchValueSpy = vi.spyOn(component.form().controls.image, 'patchValue');
|
|
const imageUploaderComp: ImageUploaderMock = fixture.debugElement.query(By.css('app-image-uploader')).componentInstance;
|
|
imageUploaderComp.file.emit(FILE_MOCK);
|
|
await fixture.whenStable();
|
|
expect(patchValueSpy).toHaveBeenCalledExactlyOnceWith(FILE_MOCK);
|
|
});
|
|
});
|