diff --git a/devtools/projects/ng-devtools-backend/src/lib/shared/ng-debug-api/BUILD.bazel b/devtools/projects/ng-devtools-backend/src/lib/shared/ng-debug-api/BUILD.bazel index 47e1acdb8bd..b036f7e133b 100644 --- a/devtools/projects/ng-devtools-backend/src/lib/shared/ng-debug-api/BUILD.bazel +++ b/devtools/projects/ng-devtools-backend/src/lib/shared/ng-debug-api/BUILD.bazel @@ -19,7 +19,7 @@ ng_project( ts_test_library( name = "ng-debug-api_test_lib", - srcs = ["ng-debug-api.spec.ts"], + srcs = glob(["*.spec.ts"]), deps = [ ":ng-debug-api", "//:node_modules/@angular/core", diff --git a/devtools/projects/ng-devtools-backend/src/lib/shared/ng-debug-api/ng-debug-api.spec.ts b/devtools/projects/ng-devtools-backend/src/lib/shared/ng-debug-api/ng-debug-api.spec.ts index e5f723c3ad8..d8169075b9d 100644 --- a/devtools/projects/ng-devtools-backend/src/lib/shared/ng-debug-api/ng-debug-api.spec.ts +++ b/devtools/projects/ng-devtools-backend/src/lib/shared/ng-debug-api/ng-debug-api.spec.ts @@ -61,6 +61,7 @@ const fakeNgGlobal = (framework: Framework): Partial => { describe('ng-debug-api', () => { afterEach(() => { delete (globalThis as any).ng; + document.body.replaceChildren(); }); describe('ngDebugDependencyInjectionApiIsSupported', () => { diff --git a/devtools/projects/ng-devtools-backend/src/lib/shared/ng-debug-api/supported-apis.spec.ts b/devtools/projects/ng-devtools-backend/src/lib/shared/ng-debug-api/supported-apis.spec.ts index c6a5889b238..29ed9c0b27b 100644 --- a/devtools/projects/ng-devtools-backend/src/lib/shared/ng-debug-api/supported-apis.spec.ts +++ b/devtools/projects/ng-devtools-backend/src/lib/shared/ng-debug-api/supported-apis.spec.ts @@ -9,11 +9,38 @@ import {getSupportedApis} from './supported-apis'; describe('supported-apis', () => { + afterEach(() => { + delete (globalThis as any).ng; + }); + describe('getSupportedApis', () => { - it('should return supported APIs', () => { + it('should return every flag as false when no debug API is available', () => { + (globalThis as any).ng = {}; + const supported = getSupportedApis(); - expect(supported).toBeTruthy(); + expect(Object.keys(supported).sort()).toEqual([ + 'dependencyInjection', + 'profiler', + 'routes', + 'signalPropertiesInspection', + 'signals', + 'transferState', + ]); + expect(Object.values(supported).every((value) => value === false)).toBeTrue(); + }); + + it('should only report signals when the signal graph API is available', () => { + (globalThis as any).ng = {ɵgetSignalGraph: () => {}}; + + const supported = getSupportedApis(); + + expect(supported.signals).toBeTrue(); + expect(supported.dependencyInjection).toBeFalse(); + expect(supported.profiler).toBeFalse(); + expect(supported.routes).toBeFalse(); + expect(supported.signalPropertiesInspection).toBeFalse(); + expect(supported.transferState).toBeFalse(); }); }); });