chore(server): run TS files directly (no compilation) (#5134)

* sort of works

* type fixes

* added option to run old way too
This commit is contained in:
Kristaps Fabians Geikins
2025-07-23 12:20:40 +03:00
committed by GitHub
parent e34a44bf66
commit 4b06f42db7
734 changed files with 2713 additions and 2644 deletions
@@ -45,18 +45,16 @@ import {
validateSlugFactory,
generateValidSlugFactory
} from '@/modules/workspaces/services/management'
import { BasicTestUser } from '@/test/authHelper'
import { CreateWorkspaceInviteMutationVariables } from '@/modules/core/graph/generated/graphql'
import type { BasicTestUser } from '@/test/authHelper'
import type { CreateWorkspaceInviteMutationVariables } from '@/modules/core/graph/generated/graphql'
import cryptoRandomString from 'crypto-random-string'
import {
import type {
MaybeNullOrUndefined,
PaidWorkspacePlans,
Roles,
WorkspacePlan,
WorkspacePlans,
WorkspacePlanStatuses,
WorkspaceRoles
} from '@speckle/shared'
import { PaidWorkspacePlans, Roles, WorkspacePlanStatuses } from '@speckle/shared'
import {
getStreamFactory,
getStreamRolesFactory,
@@ -71,7 +69,7 @@ import {
upsertUserSsoSessionFactory
} from '@/modules/workspaces/repositories/sso'
import { getEncryptor } from '@/modules/workspaces/helpers/sso'
import { OidcProvider } from '@/modules/workspaces/domain/sso/types'
import type { OidcProvider } from '@/modules/workspaces/domain/sso/types'
import { getFeatureFlags, getFrontendOrigin } from '@/modules/shared/helpers/envHelper'
import { getDefaultSsoSessionExpirationDate } from '@/modules/workspaces/domain/sso/logic'
import {
@@ -80,7 +78,7 @@ import {
upsertWorkspacePlanFactory,
upsertWorkspaceSubscriptionFactory
} from '@/modules/gatekeeper/repositories/billing'
import { SetOptional } from 'type-fest'
import type { SetOptional } from 'type-fest'
import { isMultiRegionTestMode } from '@/test/speckle-helpers/regions'
import {
assignWorkspaceRegionFactory,
@@ -130,8 +128,8 @@ import {
validateStreamAccessFactory
} from '@/modules/core/services/streams/access'
import { authorizeResolver } from '@/modules/shared'
import { WorkspaceCreationState } from '@/modules/workspaces/domain/types'
import {
import type { WorkspaceCreationState } from '@/modules/workspaces/domain/types'
import type {
WorkspaceSeat,
WorkspaceWithOptionalRole
} from '@/modules/workspacesCore/domain/types'
@@ -1,39 +1,41 @@
import { ExecuteOperationOptions, TestApolloServer } from '@/test/graphqlHelper'
import type { ExecuteOperationOptions, TestApolloServer } from '@/test/graphqlHelper'
import {
BatchCreateWorkspaceInvitesDocument,
import type {
BatchCreateWorkspaceInvitesMutationVariables,
CancelWorkspaceInviteDocument,
CancelWorkspaceInviteMutationVariables,
CreateProjectInviteDocument,
CreateProjectInviteMutationVariables,
CreateWorkspaceInviteDocument,
CreateWorkspaceInviteMutationVariables,
CreateWorkspaceProjectInviteDocument,
CreateWorkspaceProjectInviteMutationVariables,
GetMyWorkspaceInvitesDocument,
GetProjectDocument,
GetProjectQueryVariables,
GetWorkspaceDocument,
GetWorkspaceInviteDocument,
GetWorkspaceInviteQueryVariables,
GetWorkspaceQueryVariables,
GetWorkspaceWithTeamDocument,
GetWorkspaceWithTeamQueryVariables,
ResendWorkspaceInviteDocument,
ResendWorkspaceInviteMutationVariables,
UseWorkspaceInviteDocument,
UseWorkspaceInviteMutationVariables,
UseWorkspaceProjectInviteDocument,
UseWorkspaceProjectInviteMutationVariables
} from '@/modules/core/graph/generated/graphql'
import {
BatchCreateWorkspaceInvitesDocument,
CancelWorkspaceInviteDocument,
CreateProjectInviteDocument,
CreateWorkspaceInviteDocument,
CreateWorkspaceProjectInviteDocument,
GetMyWorkspaceInvitesDocument,
GetProjectDocument,
GetWorkspaceDocument,
GetWorkspaceInviteDocument,
GetWorkspaceWithTeamDocument,
ResendWorkspaceInviteDocument,
UseWorkspaceInviteDocument,
UseWorkspaceProjectInviteDocument
} from '@/modules/core/graph/generated/graphql'
import { expect } from 'chai'
import { MaybeAsync, StreamRoles, WorkspaceRoles } from '@speckle/shared'
import type { MaybeAsync, StreamRoles, WorkspaceRoles } from '@speckle/shared'
import { expectToThrow } from '@/test/assertionHelper'
import { ForbiddenError } from '@/modules/shared/errors'
import { isBoolean } from 'lodash-es'
import { WorkspaceSeatType } from '@/modules/workspacesCore/domain/types'
import type { WorkspaceSeatType } from '@/modules/workspacesCore/domain/types'
export const buildInvitesGraphqlOperations = (deps: { apollo: TestApolloServer }) => {
const { apollo } = deps
@@ -1,6 +1,7 @@
import { basicWorkspaceFragment } from '@/modules/workspaces/tests/helpers/graphql'
import { ProjectImplicitRoleCheckFragment } from '@/modules/core/graph/generated/graphql'
import { MaybeNullOrUndefined, Roles } from '@speckle/shared'
import type { ProjectImplicitRoleCheckFragment } from '@/modules/core/graph/generated/graphql'
import type { MaybeNullOrUndefined } from '@speckle/shared'
import { Roles } from '@speckle/shared'
import { gql } from 'graphql-tag'
export const fullPermissionCheckResultFragment = gql(`
@@ -1,16 +1,14 @@
import type { BasicTestWorkspace } from '@/modules/workspaces/tests/helpers/creation'
import {
assignToWorkspaces,
BasicTestWorkspace,
createTestWorkspaces,
createWorkspaceInviteDirectly,
unassignFromWorkspace
} from '@/modules/workspaces/tests/helpers/creation'
import { BasicTestUser, createTestUsers } from '@/test/authHelper'
import {
createTestContext,
testApolloServer,
TestApolloServer
} from '@/test/graphqlHelper'
import type { BasicTestUser } from '@/test/authHelper'
import { createTestUsers } from '@/test/authHelper'
import type { TestApolloServer } from '@/test/graphqlHelper'
import { createTestContext, testApolloServer } from '@/test/graphqlHelper'
import { beforeEachContext, truncateTables } from '@/test/hooks'
import { WorkspaceRole } from '@/modules/core/graph/generated/graphql'
import { expect } from 'chai'
@@ -18,23 +16,21 @@ import {
captureCreatedInvite,
validateInviteExistanceFromEmail
} from '@/test/speckle-helpers/inviteHelper'
import { Roles, StreamRoles, WorkspaceRoles } from '@speckle/shared'
import type { StreamRoles, WorkspaceRoles } from '@speckle/shared'
import { Roles } from '@speckle/shared'
import { itEach } from '@/test/assertionHelper'
import { ServerInvites } from '@/modules/core/dbSchema'
import { TokenResourceIdentifierType } from '@/modules/core/graph/generated/graphql'
import { times } from 'lodash-es'
import { findInviteFactory } from '@/modules/serverinvites/repositories/serverInvites'
import { db } from '@/db/knex'
import {
BasicTestStream,
createTestStreams,
leaveStream
} from '@/test/speckle-helpers/streamHelper'
import type { BasicTestStream } from '@/test/speckle-helpers/streamHelper'
import { createTestStreams, leaveStream } from '@/test/speckle-helpers/streamHelper'
import { Workspaces } from '@/modules/workspaces/helpers/db'
import type { LocalAuthRestApiHelpers } from '@/modules/auth/tests/helpers/registration'
import {
generateRegistrationParams,
localAuthRestApi,
LocalAuthRestApiHelpers
localAuthRestApi
} from '@/modules/auth/tests/helpers/registration'
import type { Express } from 'express'
import { AllScopes } from '@/modules/core/helpers/mainConstants'
@@ -62,15 +58,14 @@ import {
} from '@/modules/core/services/streams/access'
import { authorizeResolver } from '@/modules/shared'
import { getUserFactory } from '@/modules/core/repositories/users'
import {
TestInvitesGraphQLOperations,
buildInvitesGraphqlOperations
} from '@/modules/workspaces/tests/helpers/invites'
import type { TestInvitesGraphQLOperations } from '@/modules/workspaces/tests/helpers/invites'
import { buildInvitesGraphqlOperations } from '@/modules/workspaces/tests/helpers/invites'
import { getEventBus } from '@/modules/shared/services/eventBus'
import { WorkspaceSeatType } from '@/modules/workspacesCore/domain/types'
import { ProjectRecordVisibility } from '@/modules/core/helpers/types'
import { getFeatureFlags } from '@/modules/shared/helpers/envHelper'
import { createEmailListener, TestEmailListener } from '@/test/speckle-helpers/email'
import type { TestEmailListener } from '@/test/speckle-helpers/email'
import { createEmailListener } from '@/test/speckle-helpers/email'
enum InviteByTarget {
Email = 'email',
@@ -1,6 +1,7 @@
import { db } from '@/db/knex'
import { StreamAcl, Streams } from '@/modules/core/dbSchema'
import { ProjectRecordVisibility, StreamRecord } from '@/modules/core/helpers/types'
import type { StreamRecord } from '@/modules/core/helpers/types'
import { ProjectRecordVisibility } from '@/modules/core/helpers/types'
import {
deleteProjectFactory,
getProjectFactory
@@ -11,19 +12,19 @@ import { WorkspaceSeatType } from '@/modules/gatekeeper/domain/billing'
import { getWorkspaceUserSeatsFactory } from '@/modules/gatekeeper/repositories/workspaceSeat'
import { getRegionDb } from '@/modules/multiregion/utils/dbSelector'
import { WorkspaceInvalidRoleError } from '@/modules/workspaces/errors/workspace'
import type { BasicTestWorkspace } from '@/modules/workspaces/tests/helpers/creation'
import {
assignToWorkspace,
assignToWorkspaces,
BasicTestWorkspace,
createTestWorkspace
} from '@/modules/workspaces/tests/helpers/creation'
import { describeEach, itEach } from '@/test/assertionHelper'
import {
BasicTestUser,
createTestUser,
createTestUsers,
login
} from '@/test/authHelper'
import type { BasicTestUser } from '@/test/authHelper'
import { createTestUser, createTestUsers, login } from '@/test/authHelper'
import type {
GetWorkspaceProjectsQuery,
ProjectUpdateRoleInput
} from '@/modules/core/graph/generated/graphql'
import {
ActiveUserProjectsDocument,
ActiveUserProjectsWorkspaceDocument,
@@ -31,33 +32,27 @@ import {
GetProjectDocument,
GetWorkspaceDocument,
GetWorkspaceProjectsDocument,
GetWorkspaceProjectsQuery,
GetWorkspaceTeamDocument,
MoveProjectToWorkspaceDocument,
ProjectUpdateRoleInput,
ProjectVisibility,
UpdateProjectDocument,
UpdateProjectRoleDocument,
UpdateWorkspaceProjectRoleDocument
} from '@/modules/core/graph/generated/graphql'
import {
ExecuteOperationResponse,
testApolloServer,
TestApolloServer
} from '@/test/graphqlHelper'
import type { ExecuteOperationResponse, TestApolloServer } from '@/test/graphqlHelper'
import { testApolloServer } from '@/test/graphqlHelper'
import { beforeEachContext } from '@/test/hooks'
import { mockAdminOverride } from '@/test/mocks/global'
import { isMultiRegionTestMode } from '@/test/speckle-helpers/regions'
import type { BasicTestStream } from '@/test/speckle-helpers/streamHelper'
import {
addToStream,
BasicTestStream,
createTestStream,
getUserStreamRole
} from '@/test/speckle-helpers/streamHelper'
import type { Nullable, Optional } from '@speckle/shared'
import {
isNonNullable,
Nullable,
Optional,
PaidWorkspacePlans,
Roles,
WorkspacePlans
@@ -65,7 +60,7 @@ import {
import { expect } from 'chai'
import cryptoRandomString from 'crypto-random-string'
import dayjs from 'dayjs'
import { Knex } from 'knex'
import type { Knex } from 'knex'
import { times } from 'lodash-es'
const grantStreamPermissions = grantStreamPermissionsFactory({ db })
@@ -3,18 +3,20 @@ import { isMultiRegionEnabled } from '@/modules/multiregion/helpers'
import { setMultiRegionConfig } from '@/modules/multiregion/regionConfig'
import { storeRegionFactory } from '@/modules/multiregion/repositories'
import { WorkspaceRegions } from '@/modules/workspaces/repositories/regions'
import type { BasicTestWorkspace } from '@/modules/workspaces/tests/helpers/creation'
import {
assignToWorkspace,
BasicTestWorkspace,
createTestWorkspace
} from '@/modules/workspaces/tests/helpers/creation'
import { BasicTestUser, createTestUser } from '@/test/authHelper'
import type { BasicTestUser } from '@/test/authHelper'
import { createTestUser } from '@/test/authHelper'
import {
GetAvailableRegionsDocument,
GetWorkspaceDefaultRegionDocument,
SetWorkspaceDefaultRegionDocument
} from '@/modules/core/graph/generated/graphql'
import { testApolloServer, TestApolloServer } from '@/test/graphqlHelper'
import type { TestApolloServer } from '@/test/graphqlHelper'
import { testApolloServer } from '@/test/graphqlHelper'
import { beforeEachContext, getRegionKeys } from '@/test/hooks'
import { truncateRegionsSafely } from '@/test/speckle-helpers/regions'
import { PaidWorkspacePlans, Roles } from '@speckle/shared'
@@ -19,16 +19,12 @@ import {
import db from '@/db/knex'
import cryptoRandomString from 'crypto-random-string'
import { expect } from 'chai'
import { Workspace, WorkspaceAcl } from '@/modules/workspacesCore/domain/types'
import type { Workspace, WorkspaceAcl } from '@/modules/workspacesCore/domain/types'
import { expectToThrow } from '@/test/assertionHelper'
import type { BasicTestUser } from '@/test/authHelper'
import { buildBasicTestUser, createTestUser, createTestUsers } from '@/test/authHelper'
import type { BasicTestWorkspace } from '@/modules/workspaces/tests/helpers/creation'
import {
BasicTestUser,
buildBasicTestUser,
createTestUser,
createTestUsers
} from '@/test/authHelper'
import {
BasicTestWorkspace,
assignToWorkspace,
buildBasicTestWorkspace,
createTestWorkspace,
@@ -1,16 +1,14 @@
import { createRandomEmail } from '@/modules/core/helpers/testHelpers'
import { intersectProjectCollaboratorsAndWorkspaceCollaboratorsFactory } from '@/modules/workspaces/repositories/projects'
import type { BasicTestWorkspace } from '@/modules/workspaces/tests/helpers/creation'
import {
assignToWorkspaces,
BasicTestWorkspace,
createTestWorkspace
} from '@/modules/workspaces/tests/helpers/creation'
import { BasicTestUser, createTestUser, createTestUsers } from '@/test/authHelper'
import {
addAllToStream,
BasicTestStream,
createTestStream
} from '@/test/speckle-helpers/streamHelper'
import type { BasicTestUser } from '@/test/authHelper'
import { createTestUser, createTestUsers } from '@/test/authHelper'
import type { BasicTestStream } from '@/test/speckle-helpers/streamHelper'
import { addAllToStream, createTestStream } from '@/test/speckle-helpers/streamHelper'
import cryptoRandomString from 'crypto-random-string'
import { db } from '@/db/knex'
import { expect } from 'chai'
@@ -4,13 +4,15 @@ import {
createRandomString
} from '@/modules/core/helpers/testHelpers'
import { getInvitableCollaboratorsByProjectIdFactory } from '@/modules/workspaces/repositories/users'
import type { BasicTestWorkspace } from '@/modules/workspaces/tests/helpers/creation'
import {
assignToWorkspace,
BasicTestWorkspace,
createTestWorkspace
} from '@/modules/workspaces/tests/helpers/creation'
import { BasicTestUser, createTestUser, createTestUsers } from '@/test/authHelper'
import { BasicTestStream, createTestStream } from '@/test/speckle-helpers/streamHelper'
import type { BasicTestUser } from '@/test/authHelper'
import { createTestUser, createTestUsers } from '@/test/authHelper'
import type { BasicTestStream } from '@/test/speckle-helpers/streamHelper'
import { createTestStream } from '@/test/speckle-helpers/streamHelper'
import { expect } from 'chai'
import { pick } from 'lodash-es'
@@ -1,27 +1,22 @@
import { Streams } from '@/modules/core/dbSchema'
import { AllScopes } from '@/modules/core/helpers/mainConstants'
import { ProjectRecordVisibility } from '@/modules/core/helpers/types'
import type { BasicTestWorkspace } from '@/modules/workspaces/tests/helpers/creation'
import {
assignToWorkspace,
BasicTestWorkspace,
createTestWorkspace,
unassignFromWorkspace
} from '@/modules/workspaces/tests/helpers/creation'
import {
ProjectImplicitRoleCheck,
projectImplicitRoleCheck
} from '@/modules/workspaces/tests/helpers/rolesGraphql'
import type { ProjectImplicitRoleCheck } from '@/modules/workspaces/tests/helpers/rolesGraphql'
import { projectImplicitRoleCheck } from '@/modules/workspaces/tests/helpers/rolesGraphql'
import { WorkspaceSeatType } from '@/modules/workspacesCore/domain/types'
import {
WorkspaceAcl,
Workspaces,
WorkspaceSeats
} from '@/modules/workspacesCore/helpers/db'
import {
BasicTestUser,
createAuthTokenForUser,
createTestUsers
} from '@/test/authHelper'
import type { BasicTestUser } from '@/test/authHelper'
import { createAuthTokenForUser, createTestUsers } from '@/test/authHelper'
import {
ActiveUserLeaveWorkspaceDocument,
GetUserProjectsWithAccessChecksDocument,
@@ -31,17 +26,11 @@ import {
UpdateWorkspaceRoleDocument,
UpdateWorkspaceSeatTypeDocument
} from '@/modules/core/graph/generated/graphql'
import {
createTestContext,
testApolloServer,
TestApolloServer
} from '@/test/graphqlHelper'
import type { TestApolloServer } from '@/test/graphqlHelper'
import { createTestContext, testApolloServer } from '@/test/graphqlHelper'
import { beforeEachContext, truncateTables } from '@/test/hooks'
import {
addToStream,
BasicTestStream,
createTestStream
} from '@/test/speckle-helpers/streamHelper'
import type { BasicTestStream } from '@/test/speckle-helpers/streamHelper'
import { addToStream, createTestStream } from '@/test/speckle-helpers/streamHelper'
import { Roles } from '@speckle/shared'
import { expect } from 'chai'
import cryptoRandomString from 'crypto-random-string'
@@ -1,17 +1,14 @@
import { ProjectRecordVisibility } from '@/modules/core/helpers/types'
import { getFeatureFlags } from '@/modules/shared/helpers/envHelper'
import type { BasicTestWorkspace } from '@/modules/workspaces/tests/helpers/creation'
import {
assignToWorkspaces,
BasicTestWorkspace,
createTestOidcProvider,
createTestSsoSession,
createTestWorkspaces
} from '@/modules/workspaces/tests/helpers/creation'
import {
BasicTestUser,
createAuthTokenForUser,
createTestUsers
} from '@/test/authHelper'
import type { BasicTestUser } from '@/test/authHelper'
import { createAuthTokenForUser, createTestUsers } from '@/test/authHelper'
import {
ActiveUserExpiredSsoSessionsDocument,
GetActiveUserWorkspacesDocument,
@@ -20,13 +17,11 @@ import {
GetWorkspaceProjectsDocument,
GetWorkspaceSsoDocument
} from '@/modules/core/graph/generated/graphql'
import {
createTestContext,
testApolloServer,
TestApolloServer
} from '@/test/graphqlHelper'
import type { TestApolloServer } from '@/test/graphqlHelper'
import { createTestContext, testApolloServer } from '@/test/graphqlHelper'
import { truncateTables } from '@/test/hooks'
import { BasicTestStream, createTestStream } from '@/test/speckle-helpers/streamHelper'
import type { BasicTestStream } from '@/test/speckle-helpers/streamHelper'
import { createTestStream } from '@/test/speckle-helpers/streamHelper'
import { AllScopes, Roles } from '@speckle/shared'
import { expect } from 'chai'
import cryptoRandomString from 'crypto-random-string'
@@ -7,21 +7,22 @@ import {
listWorkspaceSsoMembershipsFactory,
upsertUserSsoSessionFactory
} from '@/modules/workspaces/repositories/sso'
import type { BasicTestWorkspace } from '@/modules/workspaces/tests/helpers/creation'
import {
assignToWorkspace,
BasicTestWorkspace,
createTestOidcProvider,
createTestSsoSession,
createTestWorkspace,
createTestWorkspaces
} from '@/modules/workspaces/tests/helpers/creation'
import { BasicTestUser, createTestUser, createTestUsers } from '@/test/authHelper'
import type { BasicTestUser } from '@/test/authHelper'
import { createTestUser, createTestUsers } from '@/test/authHelper'
import { Roles, wait } from '@speckle/shared'
import db from '@/db/knex'
import { getDecryptor } from '@/modules/workspaces/helpers/sso'
import cryptoRandomString from 'crypto-random-string'
import { expect } from 'chai'
import { UserSsoSessionRecord } from '@/modules/workspaces/domain/sso/types'
import type { UserSsoSessionRecord } from '@/modules/workspaces/domain/sso/types'
import { truncateTables } from '@/test/hooks'
import { isValidSsoSession } from '@/modules/workspaces/domain/sso/logic'
import { getFeatureFlags } from '@/modules/shared/helpers/envHelper'
@@ -13,29 +13,27 @@ import {
validateSlugFactory
} from '@/modules/workspaces/services/management'
import { createWorkspaceProjectFactory } from '@/modules/workspaces/services/projects'
import type { BasicTestWorkspace } from '@/modules/workspaces/tests/helpers/creation'
import {
BasicTestWorkspace,
createTestWorkspace,
unassignFromWorkspace
} from '@/modules/workspaces/tests/helpers/creation'
import {
buildInvitesGraphqlOperations,
TestInvitesGraphQLOperations
} from '@/modules/workspaces/tests/helpers/invites'
import type { TestInvitesGraphQLOperations } from '@/modules/workspaces/tests/helpers/invites'
import { buildInvitesGraphqlOperations } from '@/modules/workspaces/tests/helpers/invites'
import { itEach } from '@/test/assertionHelper'
import { BasicTestUser, createTestUser } from '@/test/authHelper'
import type { BasicTestUser } from '@/test/authHelper'
import { createTestUser } from '@/test/authHelper'
import {
OnWorkspaceProjectsUpdatedDocument,
OnWorkspaceUpdatedDocument,
WorkspaceProjectsUpdatedMessageType
} from '@/modules/core/graph/generated/graphql'
import {
testApolloServer,
import type {
TestApolloServer,
TestApolloSubscriptionClient,
testApolloSubscriptionServer,
TestApolloSubscriptionServer
} from '@/test/graphqlHelper'
import { testApolloServer, testApolloSubscriptionServer } from '@/test/graphqlHelper'
import { beforeEachContext, truncateTables } from '@/test/hooks'
import { captureCreatedInvite } from '@/test/speckle-helpers/inviteHelper'
import {
@@ -1,4 +1,5 @@
import { BasicTestUser, createTestUser } from '@/test/authHelper'
import type { BasicTestUser } from '@/test/authHelper'
import { createTestUser } from '@/test/authHelper'
import { createTestWorkspace } from '@/modules/workspaces/tests/helpers/creation'
import {
createRandomEmail,
@@ -2,17 +2,13 @@ import {
createRandomEmail,
createRandomString
} from '@/modules/core/helpers/testHelpers'
import type { BasicTestWorkspace } from '@/modules/workspaces/tests/helpers/creation'
import {
assignToWorkspace,
BasicTestWorkspace,
createTestWorkspace
} from '@/modules/workspaces/tests/helpers/creation'
import {
BasicTestUser,
createTestUser,
createTestUsers,
login
} from '@/test/authHelper'
import type { BasicTestUser } from '@/test/authHelper'
import { createTestUser, createTestUsers, login } from '@/test/authHelper'
import {
ActiveUserUpdateMutationDocument,
GetActiveUserDocument,
@@ -20,9 +16,11 @@ import {
SetUserActiveWorkspaceDocument,
UserActiveResourcesDocument
} from '@/modules/core/graph/generated/graphql'
import { testApolloServer, TestApolloServer } from '@/test/graphqlHelper'
import type { TestApolloServer } from '@/test/graphqlHelper'
import { testApolloServer } from '@/test/graphqlHelper'
import { beforeEachContext } from '@/test/hooks'
import { BasicTestStream, createTestStream } from '@/test/speckle-helpers/streamHelper'
import type { BasicTestStream } from '@/test/speckle-helpers/streamHelper'
import { createTestStream } from '@/test/speckle-helpers/streamHelper'
import { expect } from 'chai'
import cryptoRandomString from 'crypto-random-string'
@@ -16,8 +16,9 @@ import {
getWorkspaceWithDomainsFactory,
upsertWorkspaceRoleFactory
} from '@/modules/workspaces/repositories/workspaces'
import { getUserFactory, UserWithOptionalRole } from '@/modules/core/repositories/users'
import {
import type { UserWithOptionalRole } from '@/modules/core/repositories/users'
import { getUserFactory } from '@/modules/core/repositories/users'
import type {
AddOrUpdateWorkspaceRole,
CreateWorkspaceJoinRequest,
SendWorkspaceJoinRequestApprovedEmail,
@@ -31,18 +32,17 @@ import {
dismissWorkspaceJoinRequestFactory,
requestToJoinWorkspaceFactory
} from '@/modules/workspaces/services/workspaceJoinRequests'
import {
BasicTestWorkspace,
createTestWorkspace
} from '@/modules/workspaces/tests/helpers/creation'
import {
import type { BasicTestWorkspace } from '@/modules/workspaces/tests/helpers/creation'
import { createTestWorkspace } from '@/modules/workspaces/tests/helpers/creation'
import type {
Workspace,
WorkspaceJoinRequest,
WorkspaceWithDomains
} from '@/modules/workspacesCore/domain/types'
import { WorkspaceJoinRequests } from '@/modules/workspacesCore/helpers/db'
import { expectToThrow } from '@/test/assertionHelper'
import { BasicTestUser, createTestUser, createTestUsers } from '@/test/authHelper'
import type { BasicTestUser } from '@/test/authHelper'
import { createTestUser, createTestUsers } from '@/test/authHelper'
import { Roles } from '@speckle/shared'
import { expect } from 'chai'
import cryptoRandomString from 'crypto-random-string'
@@ -50,7 +50,7 @@ import {
createWorkspaceJoinRequestFactory,
updateWorkspaceJoinRequestStatusFactory
} from '@/modules/workspaces/repositories/workspaceJoinRequests'
import { UserEmail } from '@/modules/core/domain/userEmails/types'
import type { UserEmail } from '@/modules/core/domain/userEmails/types'
import {
findEmailsByUserIdFactory,
findVerifiedEmailsByUserIdFactory
@@ -7,24 +7,23 @@ import {
import { setStripeClient } from '@/modules/gatekeeper/clients/stripe'
import { WorkspaceSeatType } from '@/modules/gatekeeper/domain/billing'
import { getWorkspaceUserSeatFactory } from '@/modules/gatekeeper/repositories/workspaceSeat'
import type { BasicTestWorkspace } from '@/modules/workspaces/tests/helpers/creation'
import {
assignToWorkspace,
BasicTestWorkspace,
createTestWorkspace
} from '@/modules/workspaces/tests/helpers/creation'
import { BasicTestUser, createTestUser, createTestUsers } from '@/test/authHelper'
import type { BasicTestUser } from '@/test/authHelper'
import { createTestUser, createTestUsers } from '@/test/authHelper'
import type { WorkspaceUpdateSeatTypeInput } from '@/modules/core/graph/generated/graphql'
import {
GetProjectCollaboratorsDocument,
UpdateWorkspaceSeatTypeDocument,
WorkspaceUpdateSeatTypeInput
UpdateWorkspaceSeatTypeDocument
} from '@/modules/core/graph/generated/graphql'
import { testApolloServer, TestApolloServer } from '@/test/graphqlHelper'
import type { TestApolloServer } from '@/test/graphqlHelper'
import { testApolloServer } from '@/test/graphqlHelper'
import { beforeEachContext } from '@/test/hooks'
import {
addToStream,
BasicTestStream,
createTestStream
} from '@/test/speckle-helpers/streamHelper'
import type { BasicTestStream } from '@/test/speckle-helpers/streamHelper'
import { addToStream, createTestStream } from '@/test/speckle-helpers/streamHelper'
import { Roles } from '@speckle/shared'
import { expect } from 'chai'
import dayjs from 'dayjs'
@@ -14,13 +14,14 @@ import {
ensureValidWorkspaceRoleSeatFactory,
getWorkspaceDefaultSeatTypeFactory
} from '@/modules/workspaces/services/workspaceSeat'
import type { BasicTestWorkspace } from '@/modules/workspaces/tests/helpers/creation'
import {
assignToWorkspace,
BasicTestWorkspace,
createTestWorkspace,
unassignFromWorkspace
} from '@/modules/workspaces/tests/helpers/creation'
import { BasicTestUser, createTestUser, createTestUsers } from '@/test/authHelper'
import type { BasicTestUser } from '@/test/authHelper'
import { createTestUser, createTestUsers } from '@/test/authHelper'
import { beforeEachContext } from '@/test/hooks'
import { Roles } from '@speckle/shared'
import { expect } from 'chai'
@@ -1,19 +1,17 @@
import { expect } from 'chai'
import cryptoRandomString from 'crypto-random-string'
import type { TestApolloServer } from '@/test/graphqlHelper'
import { createTestContext, testApolloServer } from '@/test/graphqlHelper'
import type { BasicTestUser } from '@/test/authHelper'
import {
createTestContext,
testApolloServer,
TestApolloServer
} from '@/test/graphqlHelper'
import {
BasicTestUser,
buildBasicTestUser,
createAuthTokenForUser,
createTestUser,
createTestUsers,
login
} from '@/test/authHelper'
import { Roles, wait, WorkspaceRoles } from '@speckle/shared'
import type { WorkspaceRoles } from '@speckle/shared'
import { Roles, wait } from '@speckle/shared'
import {
CreateProjectInviteDocument,
CreateWorkspaceDocument,
@@ -38,15 +36,17 @@ import {
} from '@/modules/core/graph/generated/graphql'
import { beforeEachContext, truncateTables } from '@/test/hooks'
import { AllScopes } from '@/modules/core/helpers/mainConstants'
import type { BasicTestWorkspace } from '@/modules/workspaces/tests/helpers/creation'
import {
assignToWorkspace,
BasicTestWorkspace,
buildBasicTestWorkspace,
createTestWorkspace,
createWorkspaceInviteDirectly
} from '@/modules/workspaces/tests/helpers/creation'
import { BasicTestCommit, createTestCommit } from '@/test/speckle-helpers/commitHelper'
import { BasicTestStream, createTestStream } from '@/test/speckle-helpers/streamHelper'
import type { BasicTestCommit } from '@/test/speckle-helpers/commitHelper'
import { createTestCommit } from '@/test/speckle-helpers/commitHelper'
import type { BasicTestStream } from '@/test/speckle-helpers/streamHelper'
import { createTestStream } from '@/test/speckle-helpers/streamHelper'
import { shuffle } from 'lodash-es'
import knex, { db } from '@/db/knex'
import {
@@ -1,7 +1,8 @@
import { db } from '@/db/knex'
import { BasicTestUser, buildBasicTestUser, createTestUser } from '@/test/authHelper'
import type { BasicTestUser } from '@/test/authHelper'
import { buildBasicTestUser, createTestUser } from '@/test/authHelper'
import type { BasicTestWorkspace } from '@/modules/workspaces/tests/helpers/creation'
import {
BasicTestWorkspace,
buildBasicTestWorkspace,
createTestWorkspace
} from '@/modules/workspaces/tests/helpers/creation'
@@ -1,4 +1,4 @@
import { UserEmail } from '@/modules/core/domain/userEmails/types'
import type { UserEmail } from '@/modules/core/domain/userEmails/types'
import {
anyEmailCompliantWithWorkspaceDomains,
isWorkspaceRole,
@@ -9,7 +9,7 @@ import {
isValidSsoSession
} from '@/modules/workspaces/domain/sso/logic'
import { WorkspaceDomainsInvalidState } from '@/modules/workspaces/errors/workspace'
import { WorkspaceDomain } from '@/modules/workspacesCore/domain/types'
import type { WorkspaceDomain } from '@/modules/workspacesCore/domain/types'
import { expectToThrow } from '@/test/assertionHelper'
import { Roles } from '@speckle/shared'
import { expect } from 'chai'
@@ -4,7 +4,7 @@ import {
buildTestWorkspaceSeat,
buildTestWorkspaceWithOptionalRole
} from '@/modules/workspaces/tests/helpers/creation'
import {
import type {
CountWorkspaceRoleWithOptionalProjectRole,
GetDefaultRegion,
GetWorkspace,
@@ -16,16 +16,14 @@ import {
buildTestWorkspacePlan,
buildTestWorkspaceSubscription
} from '@/modules/gatekeeper/tests/helpers/workspacePlan'
import {
import type {
GetWorkspacePlan,
GetWorkspaceSubscription,
WorkspaceSeatType
GetWorkspaceSubscription
} from '@/modules/gatekeeper/domain/billing'
import { FindEmailsByUserId } from '@/modules/core/domain/userEmails/operations'
import {
buildMixpanelFake,
MixpanelFakeEventRecord
} from '@/modules/shared/test/helpers/mixpanel'
import { WorkspaceSeatType } from '@/modules/gatekeeper/domain/billing'
import type { FindEmailsByUserId } from '@/modules/core/domain/userEmails/operations'
import type { MixpanelFakeEventRecord } from '@/modules/shared/test/helpers/mixpanel'
import { buildMixpanelFake } from '@/modules/shared/test/helpers/mixpanel'
import { getFeatureFlags } from '@speckle/shared/environment'
import { GatekeeperEvents } from '@/modules/gatekeeperCore/domain/events'
import {
@@ -35,7 +33,7 @@ import {
import { expect } from 'chai'
import { WorkspacePlans, WorkspacePlanStatuses } from '@speckle/shared'
import { WorkspaceEvents } from '@/modules/workspacesCore/domain/events'
import { GetUser } from '@/modules/core/domain/users/operations'
import type { GetUser } from '@/modules/core/domain/users/operations'
import cryptoRandomString from 'crypto-random-string'
import { BillingInterval } from '@/modules/core/graph/generated/graphql'
@@ -1,6 +1,6 @@
import { WorkspaceNotFoundError } from '@/modules/workspaces/errors/workspace'
import { isUserWorkspaceDomainPolicyCompliantFactory } from '@/modules/workspaces/services/domains'
import { Workspace } from '@/modules/workspacesCore/domain/types'
import type { Workspace } from '@/modules/workspacesCore/domain/types'
import { expectToThrow } from '@/test/assertionHelper'
import { expect } from 'chai'
import cryptoRandomString from 'crypto-random-string'
@@ -1,10 +1,10 @@
import {
import type {
Workspace,
WorkspaceAcl,
WorkspaceDomain,
WorkspaceSeatType,
WorkspaceWithDomains
} from '@/modules/workspacesCore/domain/types'
import { WorkspaceSeatType } from '@/modules/workspacesCore/domain/types'
import {
addDomainToWorkspaceFactory,
createWorkspaceFactory,
@@ -17,11 +17,9 @@ import {
import { Roles, validateWorkspaceSlug } from '@speckle/shared'
import { expect } from 'chai'
import cryptoRandomString from 'crypto-random-string'
import {
WorkspaceEvents,
WorkspaceEventsPayloads
} from '@/modules/workspacesCore/domain/events'
import { StreamAclRecord, StreamRecord } from '@/modules/core/helpers/types'
import type { WorkspaceEventsPayloads } from '@/modules/workspacesCore/domain/events'
import { WorkspaceEvents } from '@/modules/workspacesCore/domain/events'
import type { StreamAclRecord, StreamRecord } from '@/modules/core/helpers/types'
import { expectToThrow } from '@/test/assertionHelper'
import { createRandomPassword } from '@/modules/core/helpers/testHelpers'
import {
@@ -34,13 +32,13 @@ import {
WorkspaceSlugTakenError,
WorkspaceUnverifiedDomainError
} from '@/modules/workspaces/errors/workspace'
import { UserEmail } from '@/modules/core/domain/userEmails/types'
import type { UserEmail } from '@/modules/core/domain/userEmails/types'
import { merge, omit } from 'lodash-es'
import {
import type {
GetWorkspaceWithDomains,
UpsertWorkspaceArgs
} from '@/modules/workspaces/domain/operations'
import { FindVerifiedEmailsByUserId } from '@/modules/core/domain/userEmails/operations'
import type { FindVerifiedEmailsByUserId } from '@/modules/core/domain/userEmails/operations'
type WorkspaceTestContext = {
storedWorkspaces: UpsertWorkspaceArgs['workspace'][]
@@ -1,21 +1,23 @@
import { ProjectTeamMember } from '@/modules/core/domain/projects/types'
import type { ProjectTeamMember } from '@/modules/core/domain/projects/types'
import { ProjectNotFoundError } from '@/modules/core/errors/projects'
import { StreamRecord } from '@/modules/core/helpers/types'
import type { StreamRecord } from '@/modules/core/helpers/types'
import { queryAllProjectsFactory } from '@/modules/core/services/projects'
import { WorkspaceSeat, WorkspaceSeatType } from '@/modules/gatekeeper/domain/billing'
import type { WorkspaceSeat } from '@/modules/gatekeeper/domain/billing'
import { WorkspaceSeatType } from '@/modules/gatekeeper/domain/billing'
import { WorkspaceInvalidProjectError } from '@/modules/workspaces/errors/workspace'
import { moveProjectToWorkspaceFactory } from '@/modules/workspaces/services/projects'
import {
import type {
Workspace,
WorkspaceAcl,
WorkspaceDomain
} from '@/modules/workspacesCore/domain/types'
import { expectToThrow } from '@/test/assertionHelper'
import { ProjectUpdateRoleInput } from '@/modules/core/graph/generated/graphql'
import { Roles, StreamRoles, WorkspaceRoles } from '@speckle/shared'
import type { ProjectUpdateRoleInput } from '@/modules/core/graph/generated/graphql'
import type { StreamRoles, WorkspaceRoles } from '@speckle/shared'
import { Roles } from '@speckle/shared'
import { expect } from 'chai'
import cryptoRandomString from 'crypto-random-string'
import { StreamWithOptionalRole } from '@/modules/core/repositories/streams'
import type { StreamWithOptionalRole } from '@/modules/core/repositories/streams'
describe('Project retrieval services', () => {
describe('queryAllWorkspaceProjectFactory returns a generator, that', () => {
@@ -1,8 +1,8 @@
/* eslint-disable camelcase */
import { UserEmail } from '@/modules/core/domain/userEmails/types'
import type { UserEmail } from '@/modules/core/domain/userEmails/types'
import { getDefaultSsoSessionExpirationDate } from '@/modules/workspaces/domain/sso/logic'
import {
import type {
OidcProvider,
UserSsoSessionRecord,
WorkspaceSsoProvider,
@@ -22,7 +22,7 @@ import {
saveSsoProviderRegistrationFactory,
startOidcSsoProviderValidationFactory
} from '@/modules/workspaces/services/sso'
import { Workspace } from '@/modules/workspacesCore/domain/types'
import type { Workspace } from '@/modules/workspacesCore/domain/types'
import { expectToThrow } from '@/test/assertionHelper'
import { wait } from '@speckle/shared'
import { assert, expect } from 'chai'
@@ -2,7 +2,8 @@ import {
getWorkspaceDefaultSeatTypeFactory,
isWorkspaceRoleWorkspaceSeatTypeValid
} from '@/modules/workspaces/services/workspaceSeat'
import { Workspace, WorkspaceSeatType } from '@/modules/workspacesCore/domain/types'
import type { Workspace } from '@/modules/workspacesCore/domain/types'
import { WorkspaceSeatType } from '@/modules/workspacesCore/domain/types'
import { Roles } from '@speckle/shared'
import { expect } from 'chai'
@@ -1,4 +1,4 @@
import { WorkspaceAcl } from '@/modules/workspacesCore/domain/types'
import type { WorkspaceAcl } from '@/modules/workspacesCore/domain/types'
import { expect } from 'chai'
import { Roles } from '@speckle/shared'
import { isUserLastWorkspaceAdmin } from '@/modules/workspaces/helpers/roles'