From 3d86512efd42dcd40f24438b019ac6fa468df0a5 Mon Sep 17 00:00:00 2001 From: Konstantin Wohlwend Date: Thu, 26 Feb 2026 16:23:33 -0800 Subject: [PATCH] Fix unnecessary warning in tests --- .../config/override/[level]/route.tsx | 4 +-- apps/backend/src/lib/config.tsx | 26 ++++++++++++------- pnpm-lock.yaml | 24 +++-------------- 3 files changed, 21 insertions(+), 33 deletions(-) diff --git a/apps/backend/src/app/api/latest/internal/config/override/[level]/route.tsx b/apps/backend/src/app/api/latest/internal/config/override/[level]/route.tsx index 89c6bfb41..f8af1054b 100644 --- a/apps/backend/src/app/api/latest/internal/config/override/[level]/route.tsx +++ b/apps/backend/src/app/api/latest/internal/config/override/[level]/route.tsx @@ -276,7 +276,7 @@ export const PATCH = createSmartRouteHandler({ const levelConfig = levelConfigs[req.params.level]; const parsedConfig = await parseAndValidateConfig(req.body.config_override_string, levelConfig); - await levelConfig.override({ + const newConfig = await levelConfig.override({ projectId: req.auth.tenancy.project.id, branchId: req.auth.tenancy.branchId, config: parsedConfig, @@ -285,7 +285,7 @@ export const PATCH = createSmartRouteHandler({ await warnOnValidationFailure(levelConfig, { projectId: req.auth.tenancy.project.id, branchId: req.auth.tenancy.branchId, - config: parsedConfig, + config: newConfig, }); if (req.params.level === "environment" && shouldEnqueueExternalDbSync(parsedConfig)) { diff --git a/apps/backend/src/lib/config.tsx b/apps/backend/src/lib/config.tsx index b7a446a83..f7a60e194 100644 --- a/apps/backend/src/lib/config.tsx +++ b/apps/backend/src/lib/config.tsx @@ -401,57 +401,63 @@ export function setOrganizationConfigOverride(options: { export async function overrideProjectConfigOverride(options: { projectId: string, projectConfigOverrideOverride: ProjectConfigOverrideOverride, -}): Promise { +}): Promise { // TODO put this in a serializable transaction (or a single SQL query) to prevent race conditions const oldConfig = await rawQuery(globalPrismaClient, getProjectConfigOverrideQuery(options)); const newConfigUnmigrated = override( oldConfig, options.projectConfigOverrideOverride, - ); + ) as ProjectConfigOverride; await setProjectConfigOverride({ projectId: options.projectId, - projectConfigOverride: newConfigUnmigrated as ProjectConfigOverride, + projectConfigOverride: newConfigUnmigrated, }); + + return newConfigUnmigrated; } export async function overrideBranchConfigOverride(options: { projectId: string, branchId: string, branchConfigOverrideOverride: BranchConfigOverrideOverride, -}): Promise { +}): Promise { // TODO put this in a serializable transaction (or a single SQL query) to prevent race conditions const oldConfig = await rawQuery(globalPrismaClient, getBranchConfigOverrideQuery(options)); const newConfigUnmigrated = override( oldConfig, options.branchConfigOverrideOverride, - ); + ) as BranchConfigOverride; // setBranchConfigOverride uses upsert and preserves existing source automatically await setBranchConfigOverride({ projectId: options.projectId, branchId: options.branchId, - branchConfigOverride: newConfigUnmigrated as BranchConfigOverride, + branchConfigOverride: newConfigUnmigrated, }); + + return newConfigUnmigrated; } export async function overrideEnvironmentConfigOverride(options: { projectId: string, branchId: string, environmentConfigOverrideOverride: EnvironmentConfigOverrideOverride, -}): Promise { +}): Promise { // TODO put this in a serializable transaction (or a single SQL query) to prevent race conditions const oldConfig = await rawQuery(globalPrismaClient, getEnvironmentConfigOverrideQuery(options)); const newConfigUnmigrated = override( oldConfig, options.environmentConfigOverrideOverride, - ); + ) as EnvironmentConfigOverride; await setEnvironmentConfigOverride({ projectId: options.projectId, branchId: options.branchId, - environmentConfigOverride: newConfigUnmigrated as EnvironmentConfigOverride, + environmentConfigOverride: newConfigUnmigrated, }); + + return newConfigUnmigrated; } export function overrideOrganizationConfigOverride(options: { @@ -459,7 +465,7 @@ export function overrideOrganizationConfigOverride(options: { branchId: string, organizationId: string | null, organizationConfigOverrideOverride: OrganizationConfigOverrideOverride, -}): Promise { +}): Promise { // save organization config override on DB (either our own, or the source of truth one) throw new StackAssertionError('Not implemented'); } diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 49f85999d..cf73ce3d2 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -71,7 +71,7 @@ importers: version: 14.2.17(eslint@8.30.0)(typescript@5.3.3) eslint-plugin-import: specifier: ^2.31.0 - version: 2.31.0(@typescript-eslint/parser@6.21.0(eslint@8.30.0)(typescript@5.3.3))(eslint@8.30.0) + version: 2.31.0(@typescript-eslint/parser@6.21.0(eslint@8.30.0)(typescript@5.3.3))(eslint-import-resolver-typescript@3.6.1)(eslint@8.30.0) eslint-plugin-node: specifier: ^11.1.0 version: 11.1.0(eslint@8.30.0) @@ -538,9 +538,6 @@ importers: next: specifier: 16.1.5 version: 16.1.5(@babel/core@7.28.5)(@opentelemetry/api@1.9.0)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) - next-themes: - specifier: ^0.2.1 - version: 0.2.1(next@16.1.5(@babel/core@7.28.5)(@opentelemetry/api@1.9.0)(react-dom@19.2.3(react@19.2.3))(react@19.2.3))(react-dom@19.2.3(react@19.2.3))(react@19.2.3) posthog-js: specifier: ^1.336.1 version: 1.336.1 @@ -27354,16 +27351,6 @@ snapshots: transitivePeerDependencies: - supports-color - eslint-module-utils@2.12.0(@typescript-eslint/parser@6.21.0(eslint@8.30.0)(typescript@5.3.3))(eslint-import-resolver-node@0.3.9)(eslint@8.30.0): - dependencies: - debug: 3.2.7 - optionalDependencies: - '@typescript-eslint/parser': 6.21.0(eslint@8.30.0)(typescript@5.3.3) - eslint: 8.30.0 - eslint-import-resolver-node: 0.3.9 - transitivePeerDependencies: - - supports-color - eslint-module-utils@2.12.0(@typescript-eslint/parser@6.21.0(eslint@8.30.0)(typescript@5.8.3))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.3(@typescript-eslint/parser@6.21.0(eslint@8.30.0)(typescript@5.8.3))(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.31.0(@typescript-eslint/parser@6.21.0(eslint@8.30.0)(typescript@5.8.3))(eslint@8.30.0))(eslint@8.30.0))(eslint@8.30.0): dependencies: debug: 3.2.7 @@ -27450,7 +27437,7 @@ snapshots: doctrine: 2.1.0 eslint: 8.30.0 eslint-import-resolver-node: 0.3.9 - eslint-module-utils: 2.12.0(@typescript-eslint/parser@6.21.0(eslint@8.30.0)(typescript@5.3.3))(eslint-import-resolver-node@0.3.9)(eslint@8.30.0) + eslint-module-utils: 2.12.0(@typescript-eslint/parser@6.21.0(eslint@8.30.0)(typescript@5.3.3))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.1(@typescript-eslint/parser@6.21.0(eslint@8.30.0)(typescript@5.3.3))(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.31.0(@typescript-eslint/parser@6.21.0(eslint@8.30.0)(typescript@5.3.3))(eslint@8.30.0))(eslint@8.30.0))(eslint@8.30.0) hasown: 2.0.2 is-core-module: 2.15.1 is-glob: 4.0.3 @@ -27467,6 +27454,7 @@ snapshots: - eslint-import-resolver-typescript - eslint-import-resolver-webpack - supports-color + optional: true eslint-plugin-import@2.31.0(@typescript-eslint/parser@6.21.0(eslint@8.30.0)(typescript@5.8.3))(eslint-import-resolver-typescript@3.6.3)(eslint@8.30.0): dependencies: @@ -30353,12 +30341,6 @@ snapshots: react: 18.3.1 react-dom: 18.3.1(react@18.3.1) - next-themes@0.2.1(next@16.1.5(@babel/core@7.28.5)(@opentelemetry/api@1.9.0)(react-dom@19.2.3(react@19.2.3))(react@19.2.3))(react-dom@19.2.3(react@19.2.3))(react@19.2.3): - dependencies: - next: 16.1.5(@babel/core@7.28.5)(@opentelemetry/api@1.9.0)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) - react: 19.2.3 - react-dom: 19.2.3(react@19.2.3) - next-themes@0.3.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1): dependencies: react: 18.3.1