From d4505128cb470931b4654e3cb32c924d97c390f2 Mon Sep 17 00:00:00 2001 From: Patrik Oldsberg Date: Thu, 3 Sep 2020 17:18:01 +0200 Subject: [PATCH] core-api: remove save functionality from ApiTestRegistry + any type --- .../core-api/src/apis/ApiTestRegistry.test.ts | 36 ------------------- packages/core-api/src/apis/ApiTestRegistry.ts | 27 +++++--------- packages/core-api/src/apis/helpers.ts | 4 +-- packages/core-api/src/apis/types.ts | 6 ++-- 4 files changed, 14 insertions(+), 59 deletions(-) diff --git a/packages/core-api/src/apis/ApiTestRegistry.test.ts b/packages/core-api/src/apis/ApiTestRegistry.test.ts index fa42e64707..a4fbf1b144 100644 --- a/packages/core-api/src/apis/ApiTestRegistry.test.ts +++ b/packages/core-api/src/apis/ApiTestRegistry.test.ts @@ -37,26 +37,6 @@ describe('ApiTestRegistry', () => { expect(registry.get(cRef)).toBe(undefined); }); - it('should remove factories when resetting', () => { - const registry = new ApiTestRegistry(); - registry.register({ implements: aRef, deps: {}, factory: () => 3 }); - expect(registry.get(aRef)).toBe(3); - registry.reset(); - expect(registry.get(aRef)).toBe(undefined); - }); - - it('should keep saved factories when resetting', () => { - const registry = new ApiTestRegistry(); - registry.register({ implements: aRef, deps: {}, factory: () => 3 }); - registry.save(); - registry.register({ implements: bRef, deps: {}, factory: () => 'x' }); - expect(registry.get(aRef)).toBe(3); - expect(registry.get(bRef)).toBe('x'); - registry.reset(); - expect(registry.get(aRef)).toBe(3); - expect(registry.get(bRef)).toBe(undefined); - }); - it('should register factories with dependencies', () => { // 100% coverage + happy typescript = hasOwnProperty + this atrocity const cDeps = Object.create( @@ -135,20 +115,4 @@ describe('ApiTestRegistry', () => { expect(registry.get(aRef)).toBe(2); expect(factory).toHaveBeenCalledTimes(1); }); - - it('should call factory again after reset', () => { - const registry = new ApiTestRegistry(); - const factory = jest.fn().mockReturnValue(2); - registry.register({ implements: aRef, deps: {}, factory }); - registry.save(); - - expect(factory).toHaveBeenCalledTimes(0); - expect(registry.get(aRef)).toBe(2); - expect(factory).toHaveBeenCalledTimes(1); - expect(registry.get(aRef)).toBe(2); - expect(factory).toHaveBeenCalledTimes(1); - registry.reset(); - expect(registry.get(aRef)).toBe(2); - expect(factory).toHaveBeenCalledTimes(2); - }); }); diff --git a/packages/core-api/src/apis/ApiTestRegistry.ts b/packages/core-api/src/apis/ApiTestRegistry.ts index 7aed3c7917..6c85db056c 100644 --- a/packages/core-api/src/apis/ApiTestRegistry.ts +++ b/packages/core-api/src/apis/ApiTestRegistry.ts @@ -15,18 +15,17 @@ */ import { ApiRef } from './ApiRef'; -import { TypesToApiRefs, AnyApiRef, ApiHolder, ApiFactory } from './types'; +import { + TypesToApiRefs, + AnyApiRef, + ApiHolder, + ApiFactory, + AnyApiFactory, +} from './types'; export class ApiTestRegistry implements ApiHolder { private readonly apis = new Map(); - private factories = new Map< - AnyApiRef, - ApiFactory - >(); - private savedFactories = new Map< - AnyApiRef, - ApiFactory - >(); + private factories = new Map(); get(ref: ApiRef): T | undefined { return this.load(ref); @@ -37,16 +36,6 @@ export class ApiTestRegistry implements ApiHolder { return this; } - reset() { - this.factories = this.savedFactories; - this.apis.clear(); - } - - save(): ApiTestRegistry { - this.savedFactories = new Map(this.factories); - return this; - } - private load(ref: ApiRef, loading: AnyApiRef[] = []): T | undefined { const impl = this.apis.get(ref); if (impl) { diff --git a/packages/core-api/src/apis/helpers.ts b/packages/core-api/src/apis/helpers.ts index d8f8e8ac11..e2274a20f1 100644 --- a/packages/core-api/src/apis/helpers.ts +++ b/packages/core-api/src/apis/helpers.ts @@ -14,7 +14,7 @@ * limitations under the License. */ -import { ApiFactory } from './types'; +import { AnyApiFactory, ApiFactory } from './types'; /** * Used to infer types for a standalone ApiFactory that isn't immediately passed @@ -23,6 +23,6 @@ import { ApiFactory } from './types'; */ export function createApiFactory( factory: ApiFactory, -): ApiFactory { +): AnyApiFactory { return factory; } diff --git a/packages/core-api/src/apis/types.ts b/packages/core-api/src/apis/types.ts index 4ee9b39ca9..52355f5396 100644 --- a/packages/core-api/src/apis/types.ts +++ b/packages/core-api/src/apis/types.ts @@ -16,13 +16,13 @@ import { ApiRef } from './ApiRef'; -export type AnyApiRef = ApiRef; +export type AnyApiRef = ApiRef; export type ApiRefType = T extends ApiRef ? U : never; export type TypesToApiRefs = { [key in keyof T]: ApiRef }; -export type ApiRefsToTypes }> = { +export type ApiRefsToTypes }> = { [key in keyof T]: ApiRefType; }; @@ -35,3 +35,5 @@ export type ApiFactory = { deps: TypesToApiRefs; factory(deps: Deps): Impl extends Api ? Impl : never; }; + +export type AnyApiFactory = ApiFactory;