UNPKG

jspcom

Version:

TypeScript and JavaScript page component object framework for Selenium

67 lines 2.37 kB
import { __awaiter, __decorate, __metadata } from "tslib"; import { use as chaiUse, expect } from 'chai'; import chaiAsPromised from 'chai-as-promised'; import { By, WebDriver } from 'selenium-webdriver'; import Sinon from 'sinon'; import { Component, DynamicPageComponent, Page } from './index.js'; chaiUse(chaiAsPromised); class SomeComponent extends DynamicPageComponent { get locator() { return By.id('child'); } } class PageOne extends Page { } __decorate([ Component(), __metadata("design:type", SomeComponent) ], PageOne.prototype, "component", void 0); class OtherComponent extends DynamicPageComponent { } class PageTwo extends Page { } __decorate([ Component(), __metadata("design:type", OtherComponent) ], PageTwo.prototype, "component", void 0); describe('Dynamic Component', () => { describe('With locator', () => { let sandbox; let driverStub; let page; before(() => __awaiter(void 0, void 0, void 0, function* () { sandbox = Sinon.createSandbox(); driverStub = sandbox.createStubInstance(WebDriver, { findElement: sandbox.stub(), }); page = new PageOne(driverStub); yield page.component.getElement(); })); after(() => { sandbox.restore(); }); it('should call locator and look up element with that locator', () => __awaiter(void 0, void 0, void 0, function* () { expect(driverStub.findElement.callCount).to.equal(1); expect(driverStub.findElement.calledWith(By.id('child'))); })); }); describe('Without locator', () => { let sandbox; let driverStub; let page; before(() => __awaiter(void 0, void 0, void 0, function* () { sandbox = Sinon.createSandbox(); driverStub = sandbox.createStubInstance(WebDriver, { findElement: sandbox.stub(), }); page = new PageTwo(driverStub); })); after(() => { sandbox.restore(); }); it('should call locator and look up element with that locator', () => __awaiter(void 0, void 0, void 0, function* () { yield expect(page.component.getElement()).to.eventually.be.rejected; })); }); }); //# sourceMappingURL=dynamicComponent.spec.js.map