(options: CloudWebDriverRuntimeOptions)
| 152 | private readonly options: CloudWebDriverRuntimeOptions; |
| 153 | |
| 154 | constructor(options: CloudWebDriverRuntimeOptions) { |
| 155 | this.options = options; |
| 156 | this.provider = options.provider; |
| 157 | this.capabilities = createCloudWebDriverCapabilities({ |
| 158 | provider: options.provider, |
| 159 | platform: options.platform, |
| 160 | overrides: options.capabilityOverrides, |
| 161 | }); |
| 162 | this.leaseLifecycle = { |
| 163 | allocate: async (lease, context) => await this.allocate(lease, context?.req), |
| 164 | heartbeat: async (lease) => this.heartbeat(lease), |
| 165 | release: async (lease) => await this.release(lease), |
| 166 | }; |
| 167 | this.cloudArtifacts = { |
| 168 | listCloudArtifacts: async (query) => await this.listCloudArtifacts(query), |
| 169 | }; |
| 170 | this.deviceInventoryProvider = async (request) => { |
| 171 | if (request.leaseProvider !== this.provider) return null; |
| 172 | if (!request.leaseId) return []; |
| 173 | const session = this.sessionsByLeaseId.get(request.leaseId); |
| 174 | return session ? [session.device] : []; |
| 175 | }; |
| 176 | } |
| 177 | |
| 178 | ownsDevice(device: DeviceInfo): boolean { |
| 179 | return [...this.sessionsByLeaseId.values()].some((session) => session.device.id === device.id); |
nothing calls this directly
no test coverage detected