Skip to content

feat(client): create test mock factories for GraphQL types #2233

@wreality

Description

@wreality

Summary

Test files pass partial mock objects for generated GraphQL types (e.g. User, Submission, Publication). These types have many required fields that tests don't care about, leading to either as any casts or type errors.

Proposed solution

Create factory helpers in test/vitest/ that produce properly typed mock objects with sensible defaults, overridable per-test:

// test/vitest/factories.ts
import type { User } from "src/graphql/generated/graphql"

export function mockUser(overrides: Partial<User> = {}): User {
  return {
    __typename: "User",
    id: "1",
    email: "test@example.com",
    username: "testuser",
    name: "Test User",
    ...overrides
  }
}

Files needing factory usage

  • src/components/AssignedSubmissionUsers.vitest.spec.ts — partial User in reviewers arrays
  • src/components/AssignedPublicationUsers.vitest.spec.ts — partial User in editors arrays
  • src/components/forms/AccountProfileForm.vitest.spec.tsaccountProfile: {} as any
  • src/use/forms/graphQLValidation.vitest.spec.tserror.value = {} as any
  • src/components/PublicationStyleCriteria.vitest.spec.ts(form().at(0) as any).vm.$emit(...)
  • src/components/forms/StyleCriteriaForm.vitest.spec.ts(wrapper.emitted("delete")![0][0] as any).id

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions