@atomic-testing/component-driver-html
Version:
HTML component driver for atomic-testing
33 lines (26 loc) • 963 B
text/typescript
import { ComponentDriver, IFormFieldDriver, IToggleDriver } from '@atomic-testing/core';
export class HTMLCheckboxDriver extends ComponentDriver<{}> implements IFormFieldDriver<string | null>, IToggleDriver {
async getValue(): Promise<string | null> {
const value = await this.interactor.getAttribute(this.locator, 'value');
return value ?? null;
}
async isSelected(): Promise<boolean> {
const isChecked = await this.interactor.isChecked(this.locator);
return isChecked;
}
async setSelected(selected: boolean): Promise<void> {
const currentSelected = await this.isSelected();
if (currentSelected !== selected) {
await this.interactor.click(this.locator);
}
}
isDisabled(): Promise<boolean> {
return this.interactor.isDisabled(this.locator);
}
isReadonly(): Promise<boolean> {
return this.interactor.isReadonly(this.locator);
}
get driverName(): string {
return 'HTMLCheckboxDriver';
}
}