Merge remote-tracking branch 'upstream/v2' into provider-ready-merge
This commit is contained in:
@@ -55,7 +55,7 @@ export class RegistryService extends Context.Service<RegistryService, Registry>(
|
||||
|
||||
export const registry = (drivers: Readonly<Record<string, Interface>>): Registry => ({
|
||||
get: (provider) => {
|
||||
const driver = drivers[provider]
|
||||
const driver = Object.hasOwn(drivers, provider) ? drivers[provider] : undefined
|
||||
return driver ? Effect.succeed(driver) : Effect.fail(new ProviderNotFound({ provider }))
|
||||
},
|
||||
})
|
||||
|
||||
@@ -48,6 +48,18 @@ beforeEach(() => {
|
||||
failConnect = false
|
||||
})
|
||||
|
||||
it.effect("rejects unregistered workspace providers", () =>
|
||||
Effect.gen(function* () {
|
||||
const registry = WorkspaceDriver.registry({ fake: driver })
|
||||
|
||||
for (const provider of ["missing", "constructor", "toString", "__proto__"]) {
|
||||
expect(yield* registry.get(provider).pipe(Effect.flip)).toEqual(
|
||||
new WorkspaceDriver.ProviderNotFound({ provider }),
|
||||
)
|
||||
}
|
||||
}),
|
||||
)
|
||||
|
||||
it.effect("persists the workspace lifecycle and reconnects after idle suspension", () =>
|
||||
Effect.gen(function* () {
|
||||
const workspace = yield* Workspace.Service
|
||||
|
||||
Reference in New Issue
Block a user