diff --git a/packages/vest/src/core/suite/produce/isValid.ts b/packages/vest/src/core/suite/produce/isValid.ts index d47a1ebf0..a9f652fc5 100644 --- a/packages/vest/src/core/suite/produce/isValid.ts +++ b/packages/vest/src/core/suite/produce/isValid.ts @@ -1,7 +1,7 @@ import { isNotEmpty, isEmpty } from 'isEmpty'; +import { hasErrors } from 'hasFailures'; import { nonMatchingFieldName } from 'matchingFieldName'; -import type { SuiteResult } from 'produceSuiteResult'; import { useTestsFlat, useAllIncomplete, @@ -10,12 +10,12 @@ import { } from 'stateHooks'; // eslint-disable-next-line max-statements, complexity -export function isValid(result: SuiteResult, fieldName?: string): boolean { +export function isValid(fieldName?: string): boolean { if (fieldIsOmitted(fieldName)) { return true; } - if (result.hasErrors(fieldName)) { + if (hasErrors(fieldName)) { return false; } @@ -25,7 +25,7 @@ export function isValid(result: SuiteResult, fieldName?: string): boolean { return false; } - if (fieldDoesNotExist(result, fieldName)) { + if (fieldDoesNotExist(fieldName)) { return false; } @@ -59,8 +59,12 @@ function hasNonOptionalIncomplete(fieldName?: string) { ); } -function fieldDoesNotExist(result: SuiteResult, fieldName?: string): boolean { - return !!fieldName && isEmpty(result.tests[fieldName]); +function fieldDoesNotExist(fieldName?: string): boolean { + const testObjects = useTestsFlat(); + return ( + !!fieldName && + !testObjects.find(testObject => testObject.fieldName === fieldName) + ); } function noMissingTests(fieldName?: string): boolean { diff --git a/packages/vest/src/core/suite/produce/produceSuiteResult.ts b/packages/vest/src/core/suite/produce/produceSuiteResult.ts index 5b5dcc86f..54e8363d6 100644 --- a/packages/vest/src/core/suite/produce/produceSuiteResult.ts +++ b/packages/vest/src/core/suite/produce/produceSuiteResult.ts @@ -30,9 +30,7 @@ export function produceSuiteResult(): SuiteResult { hasErrorsByGroup: ctx.bind(ctxRef, hasErrorsByGroup), hasWarnings: ctx.bind(ctxRef, hasWarnings), hasWarningsByGroup: ctx.bind(ctxRef, hasWarningsByGroup), - isValid: ctx.bind(ctxRef, (fieldName?: string) => - isValid(produceSuiteResult(), fieldName) - ), + isValid: ctx.bind(ctxRef, isValid), suiteName, }); })