export function assertTransport(transport: IMonitor) { assertNotEmptyString(transport.id); assertNotEmptyString(transport.line); assertNotEmptyString(transport.direction); assert.isNumber(transport.arrivalTimeRelative); assert.isNumber(transport.scheduledTimeRelative); assert.isNumber(transport.delayTime); assert.instanceOf(transport.arrivalTime, Date); assert.instanceOf(transport.scheduledTime, Date); assert.property(transport, "state"); assertMode(transport.mode); if (transport.line && transport.line.indexOf("E") === -1) { assertDiva(transport.diva!); } else { assert.isUndefined(transport.diva); } assert.isDefined(transport.platform); assertPlatform(transport.platform!); }
export function assertTrip(trip: ITrip) { assertStopLocation(trip.departure!); assertStopLocation(trip.arrival!); assert.isNumber(trip.duration); assert.isNumber(trip.interchanges); assert.isArray(trip.nodes); trip.nodes.forEach(assertNode); }
const checkSubCall = (call: sinon.SinonSpyCall, methodData: string) => { const callArgs = call.args; const methodInfo = callArgs[0]; const startTime = callArgs[1]; const endTime = callArgs[2]; assert(methodInfo === methodData); assert.isNumber(startTime); assert.isNumber(endTime); assert.isTrue(endTime > startTime); assert.isDefined(callArgs[3][0] === "test"); };
export function assertDiva(diva: IDiva) { assert.isObject(diva); assert.property(diva, "number"); assert.isNumber(diva.number); assert.property(diva, "network"); assertNotEmptyString(diva.network); }
it("Github test", async () => { await client.url("https://github.com/"); await client.waitForVisible('.header-logo-invertocat'); const elementSize = await client.getElementSize(".header-logo-invertocat"); assert.isNumber(elementSize.height); assert.isNumber(elementSize.width); assert.strictEqual(elementSize.height, 32); assert.strictEqual(elementSize.width, 32); const title = await client.getTitle(); assert.isString(title); assert.strictEqual(title, "The world's leading software development platform · GitHub"); const cssProperty = await client.getCssProperty("a[href='/pricing']", "color"); assert.strictEqual(cssProperty.value, "rgba(255,255,255,1)"); });
it("Github test",function() { client.url("https://github.com/"); var elementSize = client.getElementSize(".header-logo-wordmark"); var foo = client.getElementSize('div'); assert.isNumber(elementSize.height); assert.isNumber(elementSize.width); assert.strictEqual(elementSize.height, 26); assert.strictEqual(elementSize.width, 89); var title = client.getTitle(); assert.isString(title); assert.strictEqual(title, "GitHub · Where software is built"); var cssProperty = client.getCssProperty("a[href='/plans']", "color"); assert.strictEqual(cssProperty.value, "rgba(64,120,192,1)"); });
).then((data) => { let tokenData = JSON.parse(data.body); assert.isOk(tokenData.access_token); assert.isOk(tokenData.token_type); assert.isNumber(tokenData.expires_in); assert.isOk(tokenData.refresh_token); return appInstance.getContainer().getAccessTokenDataMapper().getById(tokenData.access_token).then((token) => { assert.equal(token.clientId, client.id); assert.equal(token.id, tokenData.access_token); assert.equal(token.type, tokenData.token_type); assert.equal(token.userId, fixtureData.user.username); // @todo add more specific tests that count time assert.isTrue(moment(token.expiresAt).isAfter(moment())); }) });
function assertNode(node: INode) { assert.isString(node.direction); assert.isNumber(node.duration); assertMode(node.mode); if ( node.mode.name !== "Footpath" && node.mode.name !== "StayForConnection" && node.mode.name.indexOf("Stairs") === -1 ) { assert.isDefined(node.diva); assertDiva(node.diva!); assertNotEmptyString(node.line); } else { assert.isUndefined(node.diva); assert.isString(node.line); } if ( (node.mode.name === "Footpath" && !node.departure) || node.mode.name.indexOf("Stairs") > -1 ) { assert.isUndefined(node.departure); assert.isUndefined(node.arrival); assert.isArray(node.stops); assert.isEmpty(node.stops); } else { assertStopLocation(node.departure!); assertStopLocation(node.arrival!); assert.isArray(node.stops); assert.isNotEmpty(node.stops); node.stops.forEach(assertStop); } assert.isArray(node.path); if (node.mode.name !== "StayForConnection") { assert.isNotEmpty(node.path); node.path.forEach(assertCoords); } else { assert.isEmpty(node.path); } }
}).then((data) => { let body = JSON.parse(data.response.body); assert.isOk(body.access_token); assert.isOk(body.token_type); assert.isNumber(body.expires_in); });