From 9c75f6e2ca9ac547a9e234e1efcd8c4c910bf596 Mon Sep 17 00:00:00 2001 From: Eli Bosley Date: Thu, 22 Aug 2024 12:22:45 -0400 Subject: [PATCH] feat: update tests and snapshots --- api/dev/states/myservers.cfg | 2 +- .../__test__/common/allowed-origins.test.ts | 19 +-- .../common/dashboard/generate-data.test.ts | 109 ------------------ .../__snapshots__/permissions.test.ts.snap | 22 +++- .../core/modules/array/get-array-data.test.ts | 1 + api/src/__test__/core/permissions.test.ts | 4 +- .../files/config-file-normalizer.test.ts | 50 ++++---- .../check-mothership-authentication.test.ts | 1 + .../resolvers/docker/docker.resolver.spec.ts | 24 ++-- 9 files changed, 75 insertions(+), 157 deletions(-) delete mode 100644 api/src/__test__/common/dashboard/generate-data.test.ts diff --git a/api/dev/states/myservers.cfg b/api/dev/states/myservers.cfg index c2f0eea92..487af0308 100644 --- a/api/dev/states/myservers.cfg +++ b/api/dev/states/myservers.cfg @@ -21,4 +21,4 @@ dynamicRemoteAccessType="DISABLED" [upc] apikey="unupc_fab6ff6ffe51040595c6d9ffb63a353ba16cc2ad7d93f813a2e80a5810" [connectionStatus] -minigraph="CONNECTED" +minigraph="PRE_INIT" diff --git a/api/src/__test__/common/allowed-origins.test.ts b/api/src/__test__/common/allowed-origins.test.ts index fe037b0e9..07de93fa9 100644 --- a/api/src/__test__/common/allowed-origins.test.ts +++ b/api/src/__test__/common/allowed-origins.test.ts @@ -1,3 +1,4 @@ +import 'reflect-metadata'; import { expect, test } from 'vitest'; // Preloading imports for faster tests @@ -6,17 +7,17 @@ import '@app/store/modules/emhttp'; import '@app/store'; test('Returns allowed origins', async () => { - const { store } = await import('@app/store'); - const { loadStateFiles } = await import('@app/store/modules/emhttp'); - const { getAllowedOrigins } = await import('@app/common/allowed-origins'); - const { loadConfigFile } = await import('@app/store/modules/config'); + const { store } = await import('@app/store'); + const { loadStateFiles } = await import('@app/store/modules/emhttp'); + const { getAllowedOrigins } = await import('@app/common/allowed-origins'); + const { loadConfigFile } = await import('@app/store/modules/config'); - // Load state files into store - await store.dispatch(loadStateFiles()); - await store.dispatch(loadConfigFile()); + // Load state files into store + await store.dispatch(loadStateFiles()); + await store.dispatch(loadConfigFile()); - // Get allowed origins - expect(getAllowedOrigins()).toMatchInlineSnapshot(` + // Get allowed origins + expect(getAllowedOrigins()).toMatchInlineSnapshot(` [ "/var/run/unraid-notifications.sock", "/var/run/unraid-php.sock", diff --git a/api/src/__test__/common/dashboard/generate-data.test.ts b/api/src/__test__/common/dashboard/generate-data.test.ts deleted file mode 100644 index 365103ee3..000000000 --- a/api/src/__test__/common/dashboard/generate-data.test.ts +++ /dev/null @@ -1,109 +0,0 @@ -import { expect, test, vi } from 'vitest'; -import { store } from '@app/store'; - -import { loadStateFiles } from '@app/store/modules/emhttp'; - -vi.mock('@vmngr/libvirt', () => ({ - ConnectListAllDomainsFlags: { - ACTIVE: 0, - INACTIVE: 1, - }, -})); - -vi.mock('@app/core/log', () => ({ - logger: { - info: vi.fn(), - error: vi.fn(), - debug: vi.fn(), - trace: vi.fn(), - }, - dashboardLogger: { - info: vi.fn(), - error: vi.fn((...input) => console.log(input)), - debug: vi.fn(), - trace: vi.fn(), - }, - emhttpLogger: { - info: vi.fn(), - error: vi.fn(), - debug: vi.fn(), - trace: vi.fn(), - }, -})); - -vi.mock('@app/common/dashboard/boot-timestamp', () => ({ - bootTimestamp: new Date('2022-06-10T04:35:58.276Z'), -})); - -test('Returns generated data', async () => { - await store.dispatch(loadStateFiles()).unwrap(); - - const { generateData } = await import('@app/common/dashboard/generate-data'); - const result = await generateData(); - - expect(result).toMatchInlineSnapshot(` - { - "apps": { - "installed": 0, - "started": 0, - }, - "array": { - "capacity": { - "bytes": { - "free": 19495825571000, - "total": 41994745901000, - "used": 22498920330000, - }, - }, - "state": "STOPPED", - }, - "config": { - "valid": true, - }, - "display": { - "case": { - "base64": "", - "error": "", - "icon": "", - "url": "", - }, - }, - "os": { - "hostname": "Tower", - "uptime": "2022-06-10T04:35:58.276Z", - }, - "services": [ - { - "name": "unraid-api", - "online": true, - "uptime": { - "timestamp": "2022-06-10T04:35:58.276Z", - }, - "version": "THIS_WILL_BE_REPLACED_WHEN_BUILT", - }, - { - "name": "dynamic-remote-access", - "online": false, - "uptime": { - "timestamp": "2022-06-10T04:35:58.276Z", - }, - "version": "DISABLED", - }, - ], - "vars": { - "flashGuid": "0000-0000-0000-000000000000", - "regState": "PRO", - "regTy": "PRO", - "serverDescription": "Dev Server", - "serverName": "Tower", - }, - "versions": { - "unraid": "6.11.2", - }, - "vms": { - "installed": 0, - "started": 0, - }, - } - `); -}, 10_000); diff --git a/api/src/__test__/core/__snapshots__/permissions.test.ts.snap b/api/src/__test__/core/__snapshots__/permissions.test.ts.snap index d5f8af658..221a1acd0 100644 --- a/api/src/__test__/core/__snapshots__/permissions.test.ts.snap +++ b/api/src/__test__/core/__snapshots__/permissions.test.ts.snap @@ -255,12 +255,22 @@ RolesBuilder { "*", ], }, + "display": { + "read:any": [ + "*", + ], + }, + "docker": { + "read:any": [ + "*", + ], + }, "docker/container": { "read:any": [ "*", ], }, - "docker/network": { + "info": { "read:any": [ "*", ], @@ -270,6 +280,11 @@ RolesBuilder { "*", ], }, + "network": { + "read:any": [ + "*", + ], + }, "notifications": { "read:any": [ "*", @@ -280,6 +295,11 @@ RolesBuilder { "*", ], }, + "vars": { + "read:any": [ + "*", + ], + }, "vms": { "read:any": [ "*", diff --git a/api/src/__test__/core/modules/array/get-array-data.test.ts b/api/src/__test__/core/modules/array/get-array-data.test.ts index a80c98a79..4e51b0906 100644 --- a/api/src/__test__/core/modules/array/get-array-data.test.ts +++ b/api/src/__test__/core/modules/array/get-array-data.test.ts @@ -177,6 +177,7 @@ test('Creates an array event', async () => { "warning": null, }, ], + "id": "array--d0cd1bf0f3b0", "parities": [ { "comment": null, diff --git a/api/src/__test__/core/permissions.test.ts b/api/src/__test__/core/permissions.test.ts index 7b923c593..f9a8e432e 100644 --- a/api/src/__test__/core/permissions.test.ts +++ b/api/src/__test__/core/permissions.test.ts @@ -1,6 +1,8 @@ +import 'reflect-metadata'; + import { expect, test } from 'vitest'; import { setupPermissions } from '@app/core/permissions'; test('Returns default permissions', () => { - expect(setupPermissions()).toMatchSnapshot(); + expect(setupPermissions()).toMatchSnapshot(); }); diff --git a/api/src/__test__/core/utils/files/config-file-normalizer.test.ts b/api/src/__test__/core/utils/files/config-file-normalizer.test.ts index f10052c36..6aeeb7798 100644 --- a/api/src/__test__/core/utils/files/config-file-normalizer.test.ts +++ b/api/src/__test__/core/utils/files/config-file-normalizer.test.ts @@ -1,12 +1,14 @@ +import 'reflect-metadata'; + import { test, expect } from 'vitest'; import { getWriteableConfig } from '@app/core/utils/files/config-file-normalizer'; import { initialState } from '@app/store/modules/config'; import { cloneDeep } from 'lodash'; test('it creates a FLASH config with NO OPTIONAL values', () => { - const basicConfig = initialState; - const config = getWriteableConfig(basicConfig, 'flash'); - expect(config).toMatchInlineSnapshot(` + const basicConfig = initialState; + const config = getWriteableConfig(basicConfig, 'flash'); + expect(config).toMatchInlineSnapshot(` { "api": { "extraOrigins": "", @@ -37,9 +39,9 @@ test('it creates a FLASH config with NO OPTIONAL values', () => { }); test('it creates a MEMORY config with NO OPTIONAL values', () => { - const basicConfig = initialState; - const config = getWriteableConfig(basicConfig, 'memory'); - expect(config).toMatchInlineSnapshot(` + const basicConfig = initialState; + const config = getWriteableConfig(basicConfig, 'memory'); + expect(config).toMatchInlineSnapshot(` { "api": { "extraOrigins": "", @@ -74,15 +76,15 @@ test('it creates a MEMORY config with NO OPTIONAL values', () => { }); test('it creates a FLASH config with OPTIONAL values', () => { - const basicConfig = cloneDeep(initialState); - basicConfig.remote['2Fa'] = 'yes'; - basicConfig.local['2Fa'] = 'yes'; - basicConfig.local.showT2Fa = 'yes'; - basicConfig.api.extraOrigins = 'myextra.origins'; - basicConfig.remote.upnpEnabled = 'yes'; - basicConfig.connectionStatus.upnpStatus = 'Turned On'; - const config = getWriteableConfig(basicConfig, 'flash'); - expect(config).toMatchInlineSnapshot(` + const basicConfig = cloneDeep(initialState); + basicConfig.remote['2Fa'] = 'yes'; + basicConfig.local['2Fa'] = 'yes'; + basicConfig.local.showT2Fa = 'yes'; + basicConfig.api.extraOrigins = 'myextra.origins'; + basicConfig.remote.upnpEnabled = 'yes'; + basicConfig.connectionStatus.upnpStatus = 'Turned On'; + const config = getWriteableConfig(basicConfig, 'flash'); + expect(config).toMatchInlineSnapshot(` { "api": { "extraOrigins": "myextra.origins", @@ -118,15 +120,15 @@ test('it creates a FLASH config with OPTIONAL values', () => { }); test('it creates a MEMORY config with OPTIONAL values', () => { - const basicConfig = cloneDeep(initialState); - basicConfig.remote['2Fa'] = 'yes'; - basicConfig.local['2Fa'] = 'yes'; - basicConfig.local.showT2Fa = 'yes'; - basicConfig.api.extraOrigins = 'myextra.origins'; - basicConfig.remote.upnpEnabled = 'yes'; - basicConfig.connectionStatus.upnpStatus = 'Turned On'; - const config = getWriteableConfig(basicConfig, 'memory'); - expect(config).toMatchInlineSnapshot(` + const basicConfig = cloneDeep(initialState); + basicConfig.remote['2Fa'] = 'yes'; + basicConfig.local['2Fa'] = 'yes'; + basicConfig.local.showT2Fa = 'yes'; + basicConfig.api.extraOrigins = 'myextra.origins'; + basicConfig.remote.upnpEnabled = 'yes'; + basicConfig.connectionStatus.upnpStatus = 'Turned On'; + const config = getWriteableConfig(basicConfig, 'memory'); + expect(config).toMatchInlineSnapshot(` { "api": { "extraOrigins": "myextra.origins", diff --git a/api/src/__test__/graphql/resolvers/query/cloud/check-mothership-authentication.test.ts b/api/src/__test__/graphql/resolvers/query/cloud/check-mothership-authentication.test.ts index f8a8d3e56..2ae16321f 100644 --- a/api/src/__test__/graphql/resolvers/query/cloud/check-mothership-authentication.test.ts +++ b/api/src/__test__/graphql/resolvers/query/cloud/check-mothership-authentication.test.ts @@ -1,3 +1,4 @@ +import 'reflect-metadata'; import { checkMothershipAuthentication } from "@app/graphql/resolvers/query/cloud/check-mothership-authentication"; import { expect, test } from "vitest"; import packageJson from '@app/../package.json' diff --git a/api/src/unraid-api/graph/resolvers/docker/docker.resolver.spec.ts b/api/src/unraid-api/graph/resolvers/docker/docker.resolver.spec.ts index a05584d33..a7c707558 100644 --- a/api/src/unraid-api/graph/resolvers/docker/docker.resolver.spec.ts +++ b/api/src/unraid-api/graph/resolvers/docker/docker.resolver.spec.ts @@ -1,18 +1,18 @@ import { Test, type TestingModule } from '@nestjs/testing'; -import { DockerContainersResolver } from './docker.resolver'; +import { DockerResolver } from './docker.resolver'; -describe('DockerContainersResolver', () => { - let resolver: DockerContainersResolver; +describe('DockerResolver', () => { + let resolver: DockerResolver; - beforeEach(async () => { - const module: TestingModule = await Test.createTestingModule({ - providers: [DockerContainersResolver], - }).compile(); + beforeEach(async () => { + const module: TestingModule = await Test.createTestingModule({ + providers: [DockerResolver], + }).compile(); - resolver = module.get(DockerContainersResolver); - }); + resolver = module.get(DockerResolver); + }); - it('should be defined', () => { - expect(resolver).toBeDefined(); - }); + it('should be defined', () => { + expect(resolver).toBeDefined(); + }); });