Я изучаю Angular в минуту, и у меня есть функция в компоненте dropdown.component.ts
, которая копирует нажатый текст в буфер обмена. Сама функция работает, но теперь я хочу написать для нее тест spe c. Вот как выглядит эта функция:
copyText(text: string) {
const copy = (e : ClipboardEvent) => {
e.clipboardData.setData('text/plain', text);
e.preventDefault();
};
document.addEventListener('copy', copy);
document.execCommand('copy');
document.removeEventListener('copy', copy);
}
Я не уверен, как go проверить ее. По сути, я хочу проверить, что когда нажата кнопка copy
, текст успешно копируется в буфер обмена.
Это то, что я до сих пор:
describe('DropdownComponent', () => {
let component: DropdownComponent;
let fixture: ComponentFixture<TreeModalComponent>;
beforeEach(async () => {
TestBed.configureTestingModule({
imports: [
MatMenuModule,
MatTreeModule,
MatSnackBarModule,
],
declarations: [
TreeModalComponent,
],
providers: [
{
provide: MatDialog,
useClass: MatDialogMock
},
{ provide: MatDialogRef, useValue: {} },
{ provide: MAT_DIALOG_DATA, useValue: { properties: testFTSResultData[0].properties } },
HttpClient,
HttpHandler,
],
schemas: [NO_ERRORS_SCHEMA],
}).compileComponents();
});
beforeEach(() => {
fixture = TestBed.createComponent(TreeModalComponent);
component = fixture.componentInstance;
component.properties = testResultData[0].properties;
dialog = TestBed.get(MatDialogRef);
viewport.set('laptop');
fixture.detectChanges();
});
Отсюда я хочу добавить спецификационный c тест:
//test copy to clipboard
it('should copy text to clipboard', () => {
component.copyText('copy text')
});
Я не уверен, какими должны быть последующие строки, чтобы обеспечить доступ буфера обмена к строке «копировать текст». Кто-нибудь может посоветовать?