Skip to content

Commit

Permalink
fix: expose bundle install method to users through Query config argum…
Browse files Browse the repository at this point in the history
…ents
  • Loading branch information
zaripych committed Jan 12, 2019
1 parent a74f7ff commit 1785d8d
Showing 1 changed file with 39 additions and 12 deletions.
51 changes: 39 additions & 12 deletions src/node/query/query.ts
Original file line number Diff line number Diff line change
Expand Up @@ -22,15 +22,19 @@ import { ElementQuery } from './element-query'
import { IBatchQuery, BatchQueryResult } from './query-batch'
import { ObjectQuery } from './object-query'
import { ConditionQuery } from './condition-query'
import { LibraryInstaller } from '../library-installer'
import { LibraryInstaller, InstallMethod } from '../library-installer'
import { ArrayQuery } from './array-query'
import { OneOfQueries } from './one-of-query'

export interface IQueryConfig {
shouldLogOnServer: boolean
installMethod?: InstallMethod
browserBundlePath?: string
}

const filterConfig = (config?: Partial<IConfig & IQueryConfig>): Partial<IConfig> | undefined => {
const filterConfig = (
config?: Partial<IConfig & IQueryConfig>
): Partial<IConfig> | undefined => {
if (!config) {
return
}
Expand Down Expand Up @@ -71,7 +75,13 @@ export class Query<
(buildingBlock && buildingBlock.logger) ||
(config && config.shouldLogOnServer ? consoleLogger() : noOpLogger)

const installerArg = installer || new LibraryInstaller(driver)
const installerConfig = config && {
browserBundlePath: config.browserBundlePath,
installMethod: config.installMethod,
}

const installerArg =
installer || new LibraryInstaller(driver, installerConfig)

this.precondition = precondition || (() => Promise.resolve())

Expand Down Expand Up @@ -132,20 +142,28 @@ export class Query<
return this.findElements(locatorToSelector(selector))
}

const query = this.queryBuildingBlock.query.appendCall('findElements', selector)
const query = this.queryBuildingBlock.query.appendCall(
'findElements',
selector
)

return new ArrayQuery(
this.build(query),
build => new ElementQuery<TElement, TElementPromise>(build)
)
}

public findElement(selector: Selector | selenium.By): ElementQuery<TElement, TElementPromise> {
public findElement(
selector: Selector | selenium.By
): ElementQuery<TElement, TElementPromise> {
if (isSeleniumLocator(selector)) {
return this.findElement(locatorToSelector(selector))
}

const query = this.queryBuildingBlock.query.appendCall('findElement', selector)
const query = this.queryBuildingBlock.query.appendCall(
'findElement',
selector
)

return new ElementQuery<TElement, TElementPromise>(this.build(query))
}
Expand All @@ -154,7 +172,10 @@ export class Query<
script: string | ((...args: any[]) => T),
...args: any[]
): AnyQuery {
const query = this.queryBuildingBlock.query.appendCall('execute', ...[script, ...args])
const query = this.queryBuildingBlock.query.appendCall(
'execute',
...[script, ...args]
)
return new AnyQuery(this.build(query))
}

Expand All @@ -168,9 +189,10 @@ export class Query<
return new ObjectQuery<BatchQueryResult<Y>>(this.build(query))
}

public sequence<I extends OneOfQueries, T extends Array<I | false | undefined | null>>(
queries: (q: this) => T
) {
public sequence<
I extends OneOfQueries,
T extends Array<I | false | undefined | null>
>(queries: (q: this) => T) {
const filter = (self: this) => queries(self).filter(value => !!value)
const query = this.queryBuildingBlock.query.appendCall(
'sequence',
Expand Down Expand Up @@ -222,13 +244,18 @@ export class Query<
export class ThenableQuery extends Query {
public perform(): Promise<void> {
if (this.queryBuildingBlock.query.numberOfCalls > 0) {
return this.queryBuildingBlock.executor.perform(this.queryBuildingBlock.query)
return this.queryBuildingBlock.executor.perform(
this.queryBuildingBlock.query
)
} else {
return this.precondition()
}
}

public then(onfulfilled?: OnFulfilled<void, void>, onrejected?: OnRejected<void>) {
public then(
onfulfilled?: OnFulfilled<void, void>,
onrejected?: OnRejected<void>
) {
return this.perform().then(onfulfilled, onrejected)
}

Expand Down

0 comments on commit 1785d8d

Please sign in to comment.