mirror of
https://github.com/Abdulazizzn/n8n-enterprise-unlocked.git
synced 2025-12-17 01:56:46 +00:00
refactor(core): Enable import/order eslint rule (#10794)
This commit is contained in:
@@ -1,6 +1,7 @@
|
||||
import { GlobalConfig } from '@n8n/config';
|
||||
|
||||
import { ActivationErrorsService } from '@/activation-errors.service';
|
||||
import { CacheService } from '@/services/cache/cache.service';
|
||||
import { GlobalConfig } from '@n8n/config';
|
||||
import { mockInstance } from '@test/mocking';
|
||||
|
||||
describe('ActivationErrorsService', () => {
|
||||
|
||||
@@ -1,27 +1,27 @@
|
||||
import { Container } from 'typedi';
|
||||
import { mock } from 'jest-mock-extended';
|
||||
import { NodeApiError, NodeOperationError, Workflow } from 'n8n-workflow';
|
||||
import type { IWebhookData, WorkflowActivateMode } from 'n8n-workflow';
|
||||
import { Container } from 'typedi';
|
||||
|
||||
import { ActiveExecutions } from '@/active-executions';
|
||||
import { ActiveWorkflowManager } from '@/active-workflow-manager';
|
||||
import type { WebhookEntity } from '@/databases/entities/webhook-entity';
|
||||
import type { WorkflowEntity } from '@/databases/entities/workflow-entity';
|
||||
import { ExecutionService } from '@/executions/execution.service';
|
||||
import { ExternalHooks } from '@/external-hooks';
|
||||
import { LoadNodesAndCredentials } from '@/load-nodes-and-credentials';
|
||||
import { NodeTypes } from '@/node-types';
|
||||
import { Push } from '@/push';
|
||||
import { SecretsHelper } from '@/secrets-helpers';
|
||||
import { WebhookService } from '@/webhooks/webhook.service';
|
||||
import * as WebhookHelpers from '@/webhooks/webhook-helpers';
|
||||
import { WebhookService } from '@/webhooks/webhook.service';
|
||||
import * as AdditionalData from '@/workflow-execute-additional-data';
|
||||
import type { WebhookEntity } from '@/databases/entities/webhook-entity';
|
||||
import { NodeTypes } from '@/node-types';
|
||||
import { ExecutionService } from '@/executions/execution.service';
|
||||
import { WorkflowService } from '@/workflows/workflow.service';
|
||||
|
||||
import { mockInstance } from '../shared/mocking';
|
||||
import * as testDb from './shared/test-db';
|
||||
import { createOwner } from './shared/db/users';
|
||||
import { createWorkflow } from './shared/db/workflows';
|
||||
import { LoadNodesAndCredentials } from '@/load-nodes-and-credentials';
|
||||
import type { WorkflowEntity } from '@/databases/entities/workflow-entity';
|
||||
import * as testDb from './shared/test-db';
|
||||
import { mockInstance } from '../shared/mocking';
|
||||
|
||||
mockInstance(ActiveExecutions);
|
||||
mockInstance(Push);
|
||||
|
||||
@@ -8,11 +8,11 @@ import { UserRepository } from '@/databases/repositories/user.repository';
|
||||
import { MfaService } from '@/mfa/mfa.service';
|
||||
|
||||
import { LOGGED_OUT_RESPONSE_BODY } from './shared/constants';
|
||||
import { createUser, createUserShell } from './shared/db/users';
|
||||
import { randomValidPassword } from './shared/random';
|
||||
import * as testDb from './shared/test-db';
|
||||
import * as utils from './shared/utils/';
|
||||
import { createUser, createUserShell } from './shared/db/users';
|
||||
import type { SuperAgentTest } from './shared/types';
|
||||
import * as utils from './shared/utils/';
|
||||
|
||||
let owner: User;
|
||||
let authOwnerAgent: SuperAgentTest;
|
||||
|
||||
@@ -1,9 +1,9 @@
|
||||
import { ActiveWorkflowManager } from '@/active-workflow-manager';
|
||||
|
||||
import * as utils from './shared/utils/';
|
||||
import { createUser } from './shared/db/users';
|
||||
import { mockInstance } from '../shared/mocking';
|
||||
import type { SuperAgentTest } from './shared/types';
|
||||
import * as utils from './shared/utils/';
|
||||
import { mockInstance } from '../shared/mocking';
|
||||
|
||||
describe('Auth Middleware', () => {
|
||||
mockInstance(ActiveWorkflowManager);
|
||||
|
||||
@@ -1,11 +1,11 @@
|
||||
import { BinaryDataService, FileNotFoundError } from 'n8n-core';
|
||||
import fsp from 'node:fs/promises';
|
||||
import { Readable } from 'node:stream';
|
||||
import { BinaryDataService, FileNotFoundError } from 'n8n-core';
|
||||
|
||||
import { mockInstance } from '../shared/mocking';
|
||||
import { setupTestServer } from './shared/utils';
|
||||
import { createOwner } from './shared/db/users';
|
||||
import type { SuperAgentTest } from './shared/types';
|
||||
import { setupTestServer } from './shared/utils';
|
||||
import { mockInstance } from '../shared/mocking';
|
||||
|
||||
jest.mock('fs/promises');
|
||||
|
||||
|
||||
@@ -1,20 +1,19 @@
|
||||
import Container from 'typedi';
|
||||
import { mock } from 'jest-mock-extended';
|
||||
import Container from 'typedi';
|
||||
|
||||
import type { User } from '@/databases/entities/user';
|
||||
import type { WorkflowEntity } from '@/databases/entities/workflow-entity';
|
||||
import { CollaborationService } from '@/collaboration/collaboration.service';
|
||||
import { Push } from '@/push';
|
||||
import { CacheService } from '@/services/cache/cache.service';
|
||||
import type {
|
||||
WorkflowClosedMessage,
|
||||
WorkflowOpenedMessage,
|
||||
} from '@/collaboration/collaboration.message';
|
||||
|
||||
import { CollaborationService } from '@/collaboration/collaboration.service';
|
||||
import type { User } from '@/databases/entities/user';
|
||||
import type { WorkflowEntity } from '@/databases/entities/workflow-entity';
|
||||
import { Push } from '@/push';
|
||||
import { CacheService } from '@/services/cache/cache.service';
|
||||
import { mockInstance } from '@test/mocking';
|
||||
import * as testDb from '@test-integration/test-db';
|
||||
import { createWorkflow, shareWorkflowWithUsers } from '@test-integration/db/workflows';
|
||||
import { createMember, createOwner } from '@test-integration/db/users';
|
||||
import { createWorkflow, shareWorkflowWithUsers } from '@test-integration/db/workflows';
|
||||
import * as testDb from '@test-integration/test-db';
|
||||
|
||||
describe('CollaborationService', () => {
|
||||
mockInstance(Push, new Push(mock()));
|
||||
|
||||
@@ -2,13 +2,13 @@ import { nanoid } from 'nanoid';
|
||||
|
||||
import { ImportCredentialsCommand } from '@/commands/import/credentials';
|
||||
import { LoadNodesAndCredentials } from '@/load-nodes-and-credentials';
|
||||
|
||||
import { setupTestCommand } from '@test-integration/utils/test-command';
|
||||
|
||||
import { mockInstance } from '../../shared/mocking';
|
||||
import * as testDb from '../shared/test-db';
|
||||
import { getAllCredentials, getAllSharedCredentials } from '../shared/db/credentials';
|
||||
import { createMember, createOwner } from '../shared/db/users';
|
||||
import { getPersonalProject } from '../shared/db/projects';
|
||||
import { createMember, createOwner } from '../shared/db/users';
|
||||
import * as testDb from '../shared/test-db';
|
||||
|
||||
mockInstance(LoadNodesAndCredentials);
|
||||
const command = setupTestCommand(ImportCredentialsCommand);
|
||||
|
||||
@@ -2,13 +2,13 @@ import { nanoid } from 'nanoid';
|
||||
|
||||
import { ImportWorkflowsCommand } from '@/commands/import/workflow';
|
||||
import { LoadNodesAndCredentials } from '@/load-nodes-and-credentials';
|
||||
|
||||
import { setupTestCommand } from '@test-integration/utils/test-command';
|
||||
|
||||
import { mockInstance } from '../../shared/mocking';
|
||||
import * as testDb from '../shared/test-db';
|
||||
import { getAllSharedWorkflows, getAllWorkflows } from '../shared/db/workflows';
|
||||
import { createMember, createOwner } from '../shared/db/users';
|
||||
import { getPersonalProject } from '../shared/db/projects';
|
||||
import { createMember, createOwner } from '../shared/db/users';
|
||||
import { getAllSharedWorkflows, getAllWorkflows } from '../shared/db/workflows';
|
||||
import * as testDb from '../shared/test-db';
|
||||
|
||||
mockInstance(LoadNodesAndCredentials);
|
||||
const command = setupTestCommand(ImportWorkflowsCommand);
|
||||
|
||||
@@ -1,26 +1,26 @@
|
||||
import { EntityNotFoundError } from '@n8n/typeorm';
|
||||
import { Container } from 'typedi';
|
||||
import { v4 as uuid } from 'uuid';
|
||||
import { EntityNotFoundError } from '@n8n/typeorm';
|
||||
|
||||
import { Reset } from '@/commands/ldap/reset';
|
||||
import { LoadNodesAndCredentials } from '@/load-nodes-and-credentials';
|
||||
import { WorkflowRepository } from '@/databases/repositories/workflow.repository';
|
||||
import { CredentialsRepository } from '@/databases/repositories/credentials.repository';
|
||||
import { SharedWorkflowRepository } from '@/databases/repositories/shared-workflow.repository';
|
||||
import { SharedCredentialsRepository } from '@/databases/repositories/shared-credentials.repository';
|
||||
import { SharedWorkflowRepository } from '@/databases/repositories/shared-workflow.repository';
|
||||
import { WorkflowRepository } from '@/databases/repositories/workflow.repository';
|
||||
import { getLdapSynchronizations, saveLdapSynchronization } from '@/ldap/helpers.ee';
|
||||
import { LdapService } from '@/ldap/ldap.service.ee';
|
||||
import { LoadNodesAndCredentials } from '@/load-nodes-and-credentials';
|
||||
import { Push } from '@/push';
|
||||
import { Telemetry } from '@/telemetry';
|
||||
|
||||
import { setupTestCommand } from '@test-integration/utils/test-command';
|
||||
|
||||
import { mockInstance } from '../../../shared/mocking';
|
||||
import { saveCredential } from '../../shared/db/credentials';
|
||||
import { createTeamProject, findProject, getPersonalProject } from '../../shared/db/projects';
|
||||
import { createLdapUser, createMember, getUserById } from '../../shared/db/users';
|
||||
import { createWorkflow } from '../../shared/db/workflows';
|
||||
import { randomCredentialPayload } from '../../shared/random';
|
||||
import { saveCredential } from '../../shared/db/credentials';
|
||||
import { createLdapConfig } from '../../shared/ldap';
|
||||
import { createTeamProject, findProject, getPersonalProject } from '../../shared/db/projects';
|
||||
import { randomCredentialPayload } from '../../shared/random';
|
||||
|
||||
mockInstance(Telemetry);
|
||||
|
||||
|
||||
@@ -1,13 +1,13 @@
|
||||
import { Container } from 'typedi';
|
||||
|
||||
import { setupTestCommand } from '@test-integration/utils/test-command';
|
||||
import { mockInstance } from '../../shared/mocking';
|
||||
|
||||
import { ClearLicenseCommand } from '@/commands/license/clear';
|
||||
import { SETTINGS_LICENSE_CERT_KEY } from '@/constants';
|
||||
import { SettingsRepository } from '@/databases/repositories/settings.repository';
|
||||
import { License } from '@/license';
|
||||
import { LoadNodesAndCredentials } from '@/load-nodes-and-credentials';
|
||||
import { setupTestCommand } from '@test-integration/utils/test-command';
|
||||
|
||||
import { mockInstance } from '../../shared/mocking';
|
||||
|
||||
mockInstance(LoadNodesAndCredentials);
|
||||
const license = mockInstance(License);
|
||||
|
||||
@@ -1,23 +1,23 @@
|
||||
import { Container } from 'typedi';
|
||||
|
||||
import { Reset } from '@/commands/user-management/reset';
|
||||
import { CredentialsEntity } from '@/databases/entities/credentials-entity';
|
||||
import { CredentialsRepository } from '@/databases/repositories/credentials.repository';
|
||||
import { SettingsRepository } from '@/databases/repositories/settings.repository';
|
||||
import { SharedCredentialsRepository } from '@/databases/repositories/shared-credentials.repository';
|
||||
import { SharedWorkflowRepository } from '@/databases/repositories/shared-workflow.repository';
|
||||
import { UserRepository } from '@/databases/repositories/user.repository';
|
||||
import { LoadNodesAndCredentials } from '@/load-nodes-and-credentials';
|
||||
import { NodeTypes } from '@/node-types';
|
||||
import { SharedWorkflowRepository } from '@/databases/repositories/shared-workflow.repository';
|
||||
import { SharedCredentialsRepository } from '@/databases/repositories/shared-credentials.repository';
|
||||
import { CredentialsRepository } from '@/databases/repositories/credentials.repository';
|
||||
import { CredentialsEntity } from '@/databases/entities/credentials-entity';
|
||||
import { SettingsRepository } from '@/databases/repositories/settings.repository';
|
||||
import { UserRepository } from '@/databases/repositories/user.repository';
|
||||
|
||||
import { setupTestCommand } from '@test-integration/utils/test-command';
|
||||
|
||||
import { mockInstance } from '../../shared/mocking';
|
||||
import * as testDb from '../shared/test-db';
|
||||
import { encryptCredentialData, saveCredential } from '../shared/db/credentials';
|
||||
import { getPersonalProject } from '../shared/db/projects';
|
||||
import { createMember, createUser } from '../shared/db/users';
|
||||
import { createWorkflow } from '../shared/db/workflows';
|
||||
import { getPersonalProject } from '../shared/db/projects';
|
||||
import { encryptCredentialData, saveCredential } from '../shared/db/credentials';
|
||||
import { randomCredentialPayload } from '../shared/random';
|
||||
import * as testDb from '../shared/test-db';
|
||||
|
||||
mockInstance(LoadNodesAndCredentials);
|
||||
mockInstance(NodeTypes);
|
||||
|
||||
@@ -1,10 +1,10 @@
|
||||
import { LoadNodesAndCredentials } from '@/load-nodes-and-credentials';
|
||||
import { UpdateWorkflowCommand } from '@/commands/update/workflow';
|
||||
|
||||
import { LoadNodesAndCredentials } from '@/load-nodes-and-credentials';
|
||||
import { setupTestCommand } from '@test-integration/utils/test-command';
|
||||
import * as testDb from '../../shared/test-db';
|
||||
import { createWorkflowWithTrigger, getAllWorkflows } from '../../shared/db/workflows';
|
||||
|
||||
import { mockInstance } from '../../../shared/mocking';
|
||||
import { createWorkflowWithTrigger, getAllWorkflows } from '../../shared/db/workflows';
|
||||
import * as testDb from '../../shared/test-db';
|
||||
|
||||
mockInstance(LoadNodesAndCredentials);
|
||||
const command = setupTestCommand(UpdateWorkflowCommand);
|
||||
|
||||
@@ -2,18 +2,18 @@ import { BinaryDataService } from 'n8n-core';
|
||||
|
||||
import { Worker } from '@/commands/worker';
|
||||
import config from '@/config';
|
||||
import { ExternalSecretsManager } from '@/external-secrets/external-secrets-manager.ee';
|
||||
import { MessageEventBus } from '@/eventbus/message-event-bus/message-event-bus';
|
||||
import { LogStreamingEventRelay } from '@/events/log-streaming-event-relay';
|
||||
import { ExternalHooks } from '@/external-hooks';
|
||||
import { ExternalSecretsManager } from '@/external-secrets/external-secrets-manager.ee';
|
||||
import { License } from '@/license';
|
||||
import { LoadNodesAndCredentials } from '@/load-nodes-and-credentials';
|
||||
import { ScalingService } from '@/scaling/scaling.service';
|
||||
import { OrchestrationHandlerWorkerService } from '@/services/orchestration/worker/orchestration.handler.worker.service';
|
||||
import { OrchestrationWorkerService } from '@/services/orchestration/worker/orchestration.worker.service';
|
||||
import { License } from '@/license';
|
||||
import { ExternalHooks } from '@/external-hooks';
|
||||
import { ScalingService } from '@/scaling/scaling.service';
|
||||
|
||||
import { setupTestCommand } from '@test-integration/utils/test-command';
|
||||
|
||||
import { mockInstance } from '../../shared/mocking';
|
||||
import { LogStreamingEventRelay } from '@/events/log-streaming-event-relay';
|
||||
|
||||
config.set('executions.mode', 'queue');
|
||||
config.set('binaryDataManager.availableModes', 'filesystem');
|
||||
|
||||
@@ -1,15 +1,15 @@
|
||||
import path from 'path';
|
||||
|
||||
import type { InstalledPackages } from '@/databases/entities/installed-packages';
|
||||
import type { InstalledNodes } from '@/databases/entities/installed-nodes';
|
||||
import type { InstalledPackages } from '@/databases/entities/installed-packages';
|
||||
import { LoadNodesAndCredentials } from '@/load-nodes-and-credentials';
|
||||
import { CommunityPackagesService } from '@/services/community-packages.service';
|
||||
|
||||
import { mockInstance } from '../shared/mocking';
|
||||
import { COMMUNITY_PACKAGE_VERSION } from './shared/constants';
|
||||
import { setupTestServer, mockPackage, mockNode, mockPackageName } from './shared/utils';
|
||||
import { createOwner } from './shared/db/users';
|
||||
import type { SuperAgentTest } from './shared/types';
|
||||
import { setupTestServer, mockPackage, mockNode, mockPackageName } from './shared/utils';
|
||||
import { mockInstance } from '../shared/mocking';
|
||||
|
||||
const communityPackagesService = mockInstance(CommunityPackagesService, {
|
||||
hasMissingPackages: false,
|
||||
|
||||
@@ -1,16 +1,16 @@
|
||||
import { mock } from 'jest-mock-extended';
|
||||
import type {
|
||||
INodeListSearchResult,
|
||||
IWorkflowExecuteAdditionalData,
|
||||
ResourceMapperFields,
|
||||
} from 'n8n-workflow';
|
||||
import { mock } from 'jest-mock-extended';
|
||||
|
||||
import { DynamicNodeParametersService } from '@/services/dynamic-node-parameters.service';
|
||||
import * as AdditionalData from '@/workflow-execute-additional-data';
|
||||
|
||||
import { createOwner } from '../shared/db/users';
|
||||
import { setupTestServer } from '../shared/utils';
|
||||
import type { SuperAgentTest } from '../shared/types';
|
||||
import { setupTestServer } from '../shared/utils';
|
||||
|
||||
describe('DynamicNodeParametersController', () => {
|
||||
const testServer = setupTestServer({ endpointGroups: ['dynamic-node-parameters'] });
|
||||
|
||||
@@ -1,5 +1,7 @@
|
||||
import validator from 'validator';
|
||||
|
||||
import type { User } from '@/databases/entities/user';
|
||||
|
||||
import type { UserInvitationResult } from '../../shared/utils/users';
|
||||
|
||||
export function assertReturnedUserProps(user: User) {
|
||||
|
||||
@@ -1,30 +1,29 @@
|
||||
import Container from 'typedi';
|
||||
import { Not } from '@n8n/typeorm';
|
||||
import Container from 'typedi';
|
||||
|
||||
import type { User } from '@/databases/entities/user';
|
||||
import { ProjectRelationRepository } from '@/databases/repositories/project-relation.repository';
|
||||
import { UserRepository } from '@/databases/repositories/user.repository';
|
||||
import { EventService } from '@/events/event.service';
|
||||
import { ExternalHooks } from '@/external-hooks';
|
||||
import { UserManagementMailer } from '@/user-management/email';
|
||||
import { UserRepository } from '@/databases/repositories/user.repository';
|
||||
import { PasswordUtility } from '@/services/password.utility';
|
||||
|
||||
import {
|
||||
randomEmail,
|
||||
randomInvalidPassword,
|
||||
randomName,
|
||||
randomValidPassword,
|
||||
} from '../../shared/random';
|
||||
import { createMember, createOwner, createUserShell } from '../../shared/db/users';
|
||||
import { mockInstance } from '../../../shared/mocking';
|
||||
import * as utils from '../../shared/utils';
|
||||
import { UserManagementMailer } from '@/user-management/email';
|
||||
|
||||
import {
|
||||
assertReturnedUserProps,
|
||||
assertStoredUserProps,
|
||||
assertUserInviteResult,
|
||||
} from './assertions';
|
||||
|
||||
import type { User } from '@/databases/entities/user';
|
||||
import { mockInstance } from '../../../shared/mocking';
|
||||
import { createMember, createOwner, createUserShell } from '../../shared/db/users';
|
||||
import {
|
||||
randomEmail,
|
||||
randomInvalidPassword,
|
||||
randomName,
|
||||
randomValidPassword,
|
||||
} from '../../shared/random';
|
||||
import * as utils from '../../shared/utils';
|
||||
import type { UserInvitationResult } from '../../shared/utils/users';
|
||||
import { ProjectRelationRepository } from '@/databases/repositories/project-relation.repository';
|
||||
|
||||
describe('InvitationController', () => {
|
||||
const mailer = mockInstance(UserManagementMailer);
|
||||
|
||||
@@ -1,18 +1,17 @@
|
||||
import { Container } from 'typedi';
|
||||
import { response as Response } from 'express';
|
||||
import nock from 'nock';
|
||||
import { parse as parseQs } from 'querystring';
|
||||
import { Container } from 'typedi';
|
||||
|
||||
import { OAuth2CredentialController } from '@/controllers/oauth/oauth2-credential.controller';
|
||||
import { CredentialsHelper } from '@/credentials-helper';
|
||||
import type { CredentialsEntity } from '@/databases/entities/credentials-entity';
|
||||
import type { User } from '@/databases/entities/user';
|
||||
import { CredentialsHelper } from '@/credentials-helper';
|
||||
import { OAuth2CredentialController } from '@/controllers/oauth/oauth2-credential.controller';
|
||||
|
||||
import { createOwner } from '@test-integration/db/users';
|
||||
import { saveCredential } from '@test-integration/db/credentials';
|
||||
import { createOwner } from '@test-integration/db/users';
|
||||
import * as testDb from '@test-integration/test-db';
|
||||
import { setupTestServer } from '@test-integration/utils';
|
||||
import type { SuperAgentTest } from '@test-integration/types';
|
||||
import { setupTestServer } from '@test-integration/utils';
|
||||
|
||||
describe('OAuth2 API', () => {
|
||||
const testServer = setupTestServer({ endpointGroups: ['oauth2'] });
|
||||
|
||||
@@ -1,12 +1,13 @@
|
||||
import Container from 'typedi';
|
||||
import * as testDb from './shared/test-db';
|
||||
|
||||
import { CredentialsHelper } from '@/credentials-helper';
|
||||
import { createOwner, createAdmin, createMember } from './shared/db/users';
|
||||
import type { User } from '@/databases/entities/user';
|
||||
|
||||
import { saveCredential } from './shared/db/credentials';
|
||||
import { randomCredentialPayload } from './shared/random';
|
||||
import { createTeamProject, linkUserToProject } from './shared/db/projects';
|
||||
import { createOwner, createAdmin, createMember } from './shared/db/users';
|
||||
import { randomCredentialPayload } from './shared/random';
|
||||
import * as testDb from './shared/test-db';
|
||||
|
||||
let credentialHelper: CredentialsHelper;
|
||||
let owner: User;
|
||||
|
||||
@@ -1,25 +1,24 @@
|
||||
import { Container } from 'typedi';
|
||||
import { In } from '@n8n/typeorm';
|
||||
import { Container } from 'typedi';
|
||||
|
||||
import config from '@/config';
|
||||
import type { ListQuery } from '@/requests';
|
||||
import type { User } from '@/databases/entities/user';
|
||||
import { SharedCredentialsRepository } from '@/databases/repositories/shared-credentials.repository';
|
||||
import { ProjectRepository } from '@/databases/repositories/project.repository';
|
||||
import type { Project } from '@/databases/entities/project';
|
||||
import type { User } from '@/databases/entities/user';
|
||||
import { ProjectRepository } from '@/databases/repositories/project.repository';
|
||||
import { SharedCredentialsRepository } from '@/databases/repositories/shared-credentials.repository';
|
||||
import type { ListQuery } from '@/requests';
|
||||
import { ProjectService } from '@/services/project.service';
|
||||
import { UserManagementMailer } from '@/user-management/email';
|
||||
import { createWorkflow, shareWorkflowWithUsers } from '@test-integration/db/workflows';
|
||||
|
||||
import { randomCredentialPayload } from '../shared/random';
|
||||
import * as testDb from '../shared/test-db';
|
||||
import type { SaveCredentialFunction } from '../shared/types';
|
||||
import * as utils from '../shared/utils';
|
||||
import { mockInstance } from '../../shared/mocking';
|
||||
import {
|
||||
affixRoleToSaveCredential,
|
||||
getCredentialSharings,
|
||||
shareCredentialWithProjects,
|
||||
shareCredentialWithUsers,
|
||||
} from '../shared/db/credentials';
|
||||
import { createTeamProject, linkUserToProject } from '../shared/db/projects';
|
||||
import {
|
||||
createAdmin,
|
||||
createManyUsers,
|
||||
@@ -27,10 +26,11 @@ import {
|
||||
createUser,
|
||||
createUserShell,
|
||||
} from '../shared/db/users';
|
||||
import { randomCredentialPayload } from '../shared/random';
|
||||
import * as testDb from '../shared/test-db';
|
||||
import type { SaveCredentialFunction } from '../shared/types';
|
||||
import type { SuperAgentTest } from '../shared/types';
|
||||
import { mockInstance } from '../../shared/mocking';
|
||||
import { createTeamProject, linkUserToProject } from '../shared/db/projects';
|
||||
import { createWorkflow, shareWorkflowWithUsers } from '@test-integration/db/workflows';
|
||||
import * as utils from '../shared/utils';
|
||||
|
||||
const testServer = utils.setupTestServer({
|
||||
endpointGroups: ['credentials'],
|
||||
|
||||
@@ -1,31 +1,31 @@
|
||||
import { Container } from 'typedi';
|
||||
import type { Scope } from '@sentry/node';
|
||||
import { GlobalConfig } from '@n8n/config';
|
||||
import type { Scope } from '@sentry/node';
|
||||
import { Credentials } from 'n8n-core';
|
||||
import { randomString } from 'n8n-workflow';
|
||||
import { Container } from 'typedi';
|
||||
|
||||
import type { ListQuery } from '@/requests';
|
||||
import type { User } from '@/databases/entities/user';
|
||||
import { ProjectRepository } from '@/databases/repositories/project.repository';
|
||||
import type { Project } from '@/databases/entities/project';
|
||||
import type { User } from '@/databases/entities/user';
|
||||
import { CredentialsRepository } from '@/databases/repositories/credentials.repository';
|
||||
import { ProjectRepository } from '@/databases/repositories/project.repository';
|
||||
import { SharedCredentialsRepository } from '@/databases/repositories/shared-credentials.repository';
|
||||
import type { ListQuery } from '@/requests';
|
||||
|
||||
import * as testDb from '../shared/test-db';
|
||||
import { setupTestServer } from '../shared/utils';
|
||||
import {
|
||||
randomCredentialPayload as payload,
|
||||
randomCredentialPayload,
|
||||
randomName,
|
||||
} from '../shared/random';
|
||||
import {
|
||||
saveCredential,
|
||||
shareCredentialWithProjects,
|
||||
shareCredentialWithUsers,
|
||||
} from '../shared/db/credentials';
|
||||
import { createManyUsers, createMember, createOwner } from '../shared/db/users';
|
||||
import { createTeamProject, linkUserToProject } from '../shared/db/projects';
|
||||
import { createManyUsers, createMember, createOwner } from '../shared/db/users';
|
||||
import {
|
||||
randomCredentialPayload as payload,
|
||||
randomCredentialPayload,
|
||||
randomName,
|
||||
} from '../shared/random';
|
||||
import * as testDb from '../shared/test-db';
|
||||
import type { SuperAgentTest } from '../shared/types';
|
||||
import { setupTestServer } from '../shared/utils';
|
||||
|
||||
const { any } = expect;
|
||||
|
||||
|
||||
@@ -1,13 +1,15 @@
|
||||
import type { User } from '@/databases/entities/user';
|
||||
import Container from 'typedi';
|
||||
|
||||
import { CredentialsService } from '@/credentials/credentials.service';
|
||||
import type { CredentialsEntity } from '@/databases/entities/credentials-entity';
|
||||
import type { User } from '@/databases/entities/user';
|
||||
import { SharedCredentialsRepository } from '@/databases/repositories/shared-credentials.repository';
|
||||
import { createTeamProject, linkUserToProject } from '@test-integration/db/projects';
|
||||
|
||||
import { saveCredential, shareCredentialWithUsers } from '../shared/db/credentials';
|
||||
import { createMember } from '../shared/db/users';
|
||||
import { randomCredentialPayload } from '../shared/random';
|
||||
import { SharedCredentialsRepository } from '@/databases/repositories/shared-credentials.repository';
|
||||
import Container from 'typedi';
|
||||
import { CredentialsService } from '@/credentials/credentials.service';
|
||||
import * as testDb from '../shared/test-db';
|
||||
import { createTeamProject, linkUserToProject } from '@test-integration/db/projects';
|
||||
|
||||
const credentialPayload = randomCredentialPayload();
|
||||
let memberWhoOwnsCredential: User;
|
||||
|
||||
@@ -1,11 +1,13 @@
|
||||
import Container from 'typedi';
|
||||
import * as testDb from './shared/test-db';
|
||||
import { CtaService } from '@/services/cta.service';
|
||||
import { createUser } from './shared/db/users';
|
||||
import { createManyWorkflows } from './shared/db/workflows';
|
||||
|
||||
import type { User } from '@/databases/entities/user';
|
||||
import { createWorkflowStatisticsItem } from './shared/db/workflow-statistics';
|
||||
import { StatisticsNames } from '@/databases/entities/workflow-statistics';
|
||||
import { CtaService } from '@/services/cta.service';
|
||||
|
||||
import { createUser } from './shared/db/users';
|
||||
import { createWorkflowStatisticsItem } from './shared/db/workflow-statistics';
|
||||
import { createManyWorkflows } from './shared/db/workflows';
|
||||
import * as testDb from './shared/test-db';
|
||||
|
||||
describe('CtaService', () => {
|
||||
let ctaService: CtaService;
|
||||
|
||||
@@ -1,8 +1,10 @@
|
||||
import Container from 'typedi';
|
||||
import { ExecutionRepository } from '@/databases/repositories/execution.repository';
|
||||
|
||||
import { ExecutionDataRepository } from '@/databases/repositories/execution-data.repository';
|
||||
import * as testDb from '../../shared/test-db';
|
||||
import { ExecutionRepository } from '@/databases/repositories/execution.repository';
|
||||
|
||||
import { createWorkflow } from '../../shared/db/workflows';
|
||||
import * as testDb from '../../shared/test-db';
|
||||
|
||||
describe('ExecutionRepository', () => {
|
||||
beforeAll(async () => {
|
||||
|
||||
@@ -1,11 +1,13 @@
|
||||
import { EntityNotFoundError } from '@n8n/typeorm';
|
||||
import Container from 'typedi';
|
||||
|
||||
import { AuthIdentity } from '@/databases/entities/auth-identity';
|
||||
import { ProjectRepository } from '@/databases/repositories/project.repository';
|
||||
import { UserRepository } from '@/databases/repositories/user.repository';
|
||||
|
||||
import { createTeamProject } from '../../shared/db/projects';
|
||||
import { createMember, createOwner } from '../../shared/db/users';
|
||||
import * as testDb from '../../shared/test-db';
|
||||
import { ProjectRepository } from '@/databases/repositories/project.repository';
|
||||
import { EntityNotFoundError } from '@n8n/typeorm';
|
||||
import { createTeamProject } from '../../shared/db/projects';
|
||||
import { AuthIdentity } from '@/databases/entities/auth-identity';
|
||||
import { UserRepository } from '@/databases/repositories/user.repository';
|
||||
|
||||
describe('ProjectRepository', () => {
|
||||
beforeAll(async () => {
|
||||
|
||||
@@ -2,12 +2,12 @@ import Container from 'typedi';
|
||||
|
||||
import { WorkflowRepository } from '@/databases/repositories/workflow.repository';
|
||||
|
||||
import * as testDb from '../../shared/test-db';
|
||||
import {
|
||||
createWorkflowWithTrigger,
|
||||
createWorkflow,
|
||||
getAllWorkflows,
|
||||
} from '../../shared/db/workflows';
|
||||
import * as testDb from '../../shared/test-db';
|
||||
|
||||
describe('WorkflowRepository', () => {
|
||||
beforeAll(async () => {
|
||||
|
||||
@@ -1,15 +1,15 @@
|
||||
import { WorkflowRepository } from '@/databases/repositories/workflow.repository';
|
||||
import { ActiveWorkflowManager } from '@/active-workflow-manager';
|
||||
import { generateNanoId } from '@/databases/utils/generators';
|
||||
import type { WorkflowEntity } from '@/databases/entities/workflow-entity';
|
||||
import { OrchestrationService } from '@/services/orchestration.service';
|
||||
import { WorkflowRepository } from '@/databases/repositories/workflow.repository';
|
||||
import { generateNanoId } from '@/databases/utils/generators';
|
||||
import { MultiMainSetup } from '@/services/orchestration/main/multi-main-setup.ee';
|
||||
import { OrchestrationService } from '@/services/orchestration.service';
|
||||
|
||||
import { mockInstance } from '../shared/mocking';
|
||||
import { randomName } from './shared/random';
|
||||
import { setupTestServer } from './shared/utils';
|
||||
import { createOwner } from './shared/db/users';
|
||||
import { randomName } from './shared/random';
|
||||
import type { SuperAgentTest } from './shared/types';
|
||||
import { setupTestServer } from './shared/utils';
|
||||
import { mockInstance } from '../shared/mocking';
|
||||
|
||||
describe('DebugController', () => {
|
||||
const workflowRepository = mockInstance(WorkflowRepository);
|
||||
|
||||
@@ -1,23 +1,24 @@
|
||||
import { mock } from 'jest-mock-extended';
|
||||
import { Cipher } from 'n8n-core';
|
||||
import type { InstanceSettings } from 'n8n-core';
|
||||
import * as utils from 'n8n-workflow';
|
||||
import { nanoid } from 'nanoid';
|
||||
import fsp from 'node:fs/promises';
|
||||
import Container from 'typedi';
|
||||
import { mock } from 'jest-mock-extended';
|
||||
import * as utils from 'n8n-workflow';
|
||||
import { Cipher } from 'n8n-core';
|
||||
import { nanoid } from 'nanoid';
|
||||
import type { InstanceSettings } from 'n8n-core';
|
||||
|
||||
import * as testDb from '../shared/test-db';
|
||||
import { SourceControlImportService } from '@/environments/source-control/source-control-import.service.ee';
|
||||
import { createMember, getGlobalOwner } from '../shared/db/users';
|
||||
import { SharedCredentialsRepository } from '@/databases/repositories/shared-credentials.repository';
|
||||
import { mockInstance } from '../../shared/mocking';
|
||||
import type { SourceControlledFile } from '@/environments/source-control/types/source-controlled-file';
|
||||
import type { ExportableCredential } from '@/environments/source-control/types/exportable-credential';
|
||||
import { createTeamProject, getPersonalProject } from '../shared/db/projects';
|
||||
import { ProjectRepository } from '@/databases/repositories/project.repository';
|
||||
import { saveCredential } from '../shared/db/credentials';
|
||||
import { randomCredentialPayload } from '../shared/random';
|
||||
import { CredentialsRepository } from '@/databases/repositories/credentials.repository';
|
||||
import { ProjectRepository } from '@/databases/repositories/project.repository';
|
||||
import { SharedCredentialsRepository } from '@/databases/repositories/shared-credentials.repository';
|
||||
import { SourceControlImportService } from '@/environments/source-control/source-control-import.service.ee';
|
||||
import type { ExportableCredential } from '@/environments/source-control/types/exportable-credential';
|
||||
import type { SourceControlledFile } from '@/environments/source-control/types/source-controlled-file';
|
||||
|
||||
import { mockInstance } from '../../shared/mocking';
|
||||
import { saveCredential } from '../shared/db/credentials';
|
||||
import { createTeamProject, getPersonalProject } from '../shared/db/projects';
|
||||
import { createMember, getGlobalOwner } from '../shared/db/users';
|
||||
import { randomCredentialPayload } from '../shared/random';
|
||||
import * as testDb from '../shared/test-db';
|
||||
|
||||
describe('SourceControlImportService', () => {
|
||||
let service: SourceControlImportService;
|
||||
|
||||
@@ -1,16 +1,16 @@
|
||||
import { Container } from 'typedi';
|
||||
|
||||
import type { User } from '@/databases/entities/user';
|
||||
import config from '@/config';
|
||||
import type { User } from '@/databases/entities/user';
|
||||
import { SourceControlPreferencesService } from '@/environments/source-control/source-control-preferences.service.ee';
|
||||
import { SourceControlService } from '@/environments/source-control/source-control.service.ee';
|
||||
import type { SourceControlledFile } from '@/environments/source-control/types/source-controlled-file';
|
||||
import { Telemetry } from '@/telemetry';
|
||||
import { mockInstance } from '@test/mocking';
|
||||
|
||||
import * as utils from '../shared/utils';
|
||||
import { createUser } from '../shared/db/users';
|
||||
import type { SuperAgentTest } from '../shared/types';
|
||||
import { mockInstance } from '@test/mocking';
|
||||
import { Telemetry } from '@/telemetry';
|
||||
import * as utils from '../shared/utils';
|
||||
|
||||
let authOwnerAgent: SuperAgentTest;
|
||||
let owner: User;
|
||||
|
||||
@@ -1,7 +1,4 @@
|
||||
import { Container } from 'typedi';
|
||||
import axios from 'axios';
|
||||
import syslog from 'syslog-client';
|
||||
import { v4 as uuid } from 'uuid';
|
||||
import type {
|
||||
MessageEventBusDestinationSentryOptions,
|
||||
MessageEventBusDestinationSyslogOptions,
|
||||
@@ -12,21 +9,24 @@ import {
|
||||
defaultMessageEventBusDestinationSyslogOptions,
|
||||
defaultMessageEventBusDestinationWebhookOptions,
|
||||
} from 'n8n-workflow';
|
||||
import syslog from 'syslog-client';
|
||||
import { Container } from 'typedi';
|
||||
import { v4 as uuid } from 'uuid';
|
||||
|
||||
import type { User } from '@/databases/entities/user';
|
||||
import { MessageEventBus } from '@/eventbus/message-event-bus/message-event-bus';
|
||||
import type { EventNamesTypes } from '@/eventbus/event-message-classes';
|
||||
import { EventMessageAudit } from '@/eventbus/event-message-classes/event-message-audit';
|
||||
import { EventMessageGeneric } from '@/eventbus/event-message-classes/event-message-generic';
|
||||
import { MessageEventBus } from '@/eventbus/message-event-bus/message-event-bus';
|
||||
import type { MessageEventBusDestinationSentry } from '@/eventbus/message-event-bus-destination/message-event-bus-destination-sentry.ee';
|
||||
import type { MessageEventBusDestinationSyslog } from '@/eventbus/message-event-bus-destination/message-event-bus-destination-syslog.ee';
|
||||
import type { MessageEventBusDestinationWebhook } from '@/eventbus/message-event-bus-destination/message-event-bus-destination-webhook.ee';
|
||||
import type { MessageEventBusDestinationSentry } from '@/eventbus/message-event-bus-destination/message-event-bus-destination-sentry.ee';
|
||||
import { EventMessageAudit } from '@/eventbus/event-message-classes/event-message-audit';
|
||||
import type { EventNamesTypes } from '@/eventbus/event-message-classes';
|
||||
import { ExecutionRecoveryService } from '@/executions/execution-recovery.service';
|
||||
|
||||
import * as utils from './shared/utils';
|
||||
import { createUser } from './shared/db/users';
|
||||
import { mockInstance } from '../shared/mocking';
|
||||
import type { SuperAgentTest } from './shared/types';
|
||||
import * as utils from './shared/utils';
|
||||
import { mockInstance } from '../shared/mocking';
|
||||
|
||||
jest.unmock('@/eventbus/message-event-bus/message-event-bus');
|
||||
jest.mock('axios');
|
||||
|
||||
@@ -2,10 +2,10 @@ import type { User } from '@/databases/entities/user';
|
||||
import { MessageEventBus } from '@/eventbus/message-event-bus/message-event-bus';
|
||||
import { ExecutionRecoveryService } from '@/executions/execution-recovery.service';
|
||||
|
||||
import * as utils from './shared/utils/';
|
||||
import { createUser } from './shared/db/users';
|
||||
import { mockInstance } from '../shared/mocking';
|
||||
import type { SuperAgentTest } from './shared/types';
|
||||
import * as utils from './shared/utils/';
|
||||
import { mockInstance } from '../shared/mocking';
|
||||
|
||||
/**
|
||||
* NOTE: due to issues with mocking the MessageEventBus in multiple tests running in parallel,
|
||||
|
||||
@@ -1,13 +1,15 @@
|
||||
import { ExecutionRepository } from '@/databases/repositories/execution.repository';
|
||||
import { ExecutionService } from '@/executions/execution.service';
|
||||
import { mock } from 'jest-mock-extended';
|
||||
import Container from 'typedi';
|
||||
import { createWorkflow } from './shared/db/workflows';
|
||||
import { annotateExecution, createAnnotationTags, createExecution } from './shared/db/executions';
|
||||
import * as testDb from './shared/test-db';
|
||||
import { WorkflowRepository } from '@/databases/repositories/workflow.repository';
|
||||
import type { ExecutionSummaries } from '@/executions/execution.types';
|
||||
|
||||
import { ExecutionMetadataRepository } from '@/databases/repositories/execution-metadata.repository';
|
||||
import { ExecutionRepository } from '@/databases/repositories/execution.repository';
|
||||
import { WorkflowRepository } from '@/databases/repositories/workflow.repository';
|
||||
import { ExecutionService } from '@/executions/execution.service';
|
||||
import type { ExecutionSummaries } from '@/executions/execution.types';
|
||||
|
||||
import { annotateExecution, createAnnotationTags, createExecution } from './shared/db/executions';
|
||||
import { createWorkflow } from './shared/db/workflows';
|
||||
import * as testDb from './shared/test-db';
|
||||
|
||||
describe('ExecutionService', () => {
|
||||
let executionService: ExecutionService;
|
||||
|
||||
@@ -1,16 +1,15 @@
|
||||
import { ConcurrencyControlService } from '@/concurrency/concurrency-control.service';
|
||||
import type { User } from '@/databases/entities/user';
|
||||
import { WaitTracker } from '@/wait-tracker';
|
||||
|
||||
import { createSuccessfulExecution, getAllExecutions } from './shared/db/executions';
|
||||
import { createTeamProject, linkUserToProject } from './shared/db/projects';
|
||||
import { createMember, createOwner } from './shared/db/users';
|
||||
import { createWorkflow, shareWorkflowWithUsers } from './shared/db/workflows';
|
||||
import * as testDb from './shared/test-db';
|
||||
import { setupTestServer } from './shared/utils';
|
||||
import { mockInstance } from '../shared/mocking';
|
||||
|
||||
import { ConcurrencyControlService } from '@/concurrency/concurrency-control.service';
|
||||
import { WaitTracker } from '@/wait-tracker';
|
||||
import { createTeamProject, linkUserToProject } from './shared/db/projects';
|
||||
|
||||
mockInstance(WaitTracker);
|
||||
mockInstance(ConcurrencyControlService, {
|
||||
// @ts-expect-error Private property
|
||||
|
||||
@@ -1,27 +1,27 @@
|
||||
import { Container } from 'typedi';
|
||||
import { mock } from 'jest-mock-extended';
|
||||
import { Cipher } from 'n8n-core';
|
||||
import { jsonParse, type IDataObject } from 'n8n-workflow';
|
||||
import { mock } from 'jest-mock-extended';
|
||||
import { Container } from 'typedi';
|
||||
|
||||
import { License } from '@/license';
|
||||
import type { ExternalSecretsSettings, SecretsProviderState } from '@/interfaces';
|
||||
import { SettingsRepository } from '@/databases/repositories/settings.repository';
|
||||
import { ExternalSecretsProviders } from '@/external-secrets/external-secrets-providers.ee';
|
||||
import config from '@/config';
|
||||
import { ExternalSecretsManager } from '@/external-secrets/external-secrets-manager.ee';
|
||||
import { CREDENTIAL_BLANKING_VALUE } from '@/constants';
|
||||
import { SettingsRepository } from '@/databases/repositories/settings.repository';
|
||||
import type { EventService } from '@/events/event.service';
|
||||
import { ExternalSecretsManager } from '@/external-secrets/external-secrets-manager.ee';
|
||||
import { ExternalSecretsProviders } from '@/external-secrets/external-secrets-providers.ee';
|
||||
import type { ExternalSecretsSettings, SecretsProviderState } from '@/interfaces';
|
||||
import { License } from '@/license';
|
||||
|
||||
import { mockInstance } from '../../shared/mocking';
|
||||
import { setupTestServer } from '../shared/utils';
|
||||
import { createOwner, createUser } from '../shared/db/users';
|
||||
import {
|
||||
DummyProvider,
|
||||
FailedProvider,
|
||||
MockProviders,
|
||||
TestFailProvider,
|
||||
} from '../../shared/external-secrets/utils';
|
||||
import { mockInstance } from '../../shared/mocking';
|
||||
import { createOwner, createUser } from '../shared/db/users';
|
||||
import type { SuperAgentTest } from '../shared/types';
|
||||
import type { EventService } from '@/events/event.service';
|
||||
import { setupTestServer } from '../shared/utils';
|
||||
|
||||
let authOwnerAgent: SuperAgentTest;
|
||||
let authMemberAgent: SuperAgentTest;
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
import * as testDb from './shared/test-db';
|
||||
import { setupTestServer } from '@test-integration/utils';
|
||||
|
||||
import * as testDb from './shared/test-db';
|
||||
|
||||
const testServer = setupTestServer({ endpointGroups: ['health'] });
|
||||
|
||||
describe('HealthcheckController', () => {
|
||||
|
||||
@@ -1,17 +1,18 @@
|
||||
import Container from 'typedi';
|
||||
import { mock } from 'jest-mock-extended';
|
||||
import { v4 as uuid } from 'uuid';
|
||||
import type { INode } from 'n8n-workflow';
|
||||
import Container from 'typedi';
|
||||
import { v4 as uuid } from 'uuid';
|
||||
|
||||
import { CredentialsRepository } from '@/databases/repositories/credentials.repository';
|
||||
import { TagRepository } from '@/databases/repositories/tag.repository';
|
||||
import { ImportService } from '@/services/import.service';
|
||||
import type { Project } from '@/databases/entities/project';
|
||||
import { TagEntity } from '@/databases/entities/tag-entity';
|
||||
import { WorkflowRepository } from '@/databases/repositories/workflow.repository';
|
||||
import type { User } from '@/databases/entities/user';
|
||||
import { CredentialsRepository } from '@/databases/repositories/credentials.repository';
|
||||
import { SharedWorkflowRepository } from '@/databases/repositories/shared-workflow.repository';
|
||||
import { TagRepository } from '@/databases/repositories/tag.repository';
|
||||
import { WorkflowRepository } from '@/databases/repositories/workflow.repository';
|
||||
import { ImportService } from '@/services/import.service';
|
||||
|
||||
import * as testDb from './shared/test-db';
|
||||
import { mockInstance } from '../shared/mocking';
|
||||
import { getPersonalProject } from './shared/db/projects';
|
||||
import { createMember, createOwner } from './shared/db/users';
|
||||
import {
|
||||
createWorkflow,
|
||||
@@ -19,10 +20,8 @@ import {
|
||||
getWorkflowById,
|
||||
newWorkflow,
|
||||
} from './shared/db/workflows';
|
||||
|
||||
import type { User } from '@/databases/entities/user';
|
||||
import type { Project } from '@/databases/entities/project';
|
||||
import { getPersonalProject } from './shared/db/projects';
|
||||
import * as testDb from './shared/test-db';
|
||||
import { mockInstance } from '../shared/mocking';
|
||||
|
||||
describe('ImportService', () => {
|
||||
let importService: ImportService;
|
||||
|
||||
@@ -1,24 +1,24 @@
|
||||
import { Container } from 'typedi';
|
||||
import type { Entry as LdapUser } from 'ldapts';
|
||||
import { Not } from '@n8n/typeorm';
|
||||
import type { Entry as LdapUser } from 'ldapts';
|
||||
import { Cipher } from 'n8n-core';
|
||||
import { Container } from 'typedi';
|
||||
|
||||
import config from '@/config';
|
||||
import type { User } from '@/databases/entities/user';
|
||||
import { UserRepository } from '@/databases/repositories/user.repository';
|
||||
import { AuthProviderSyncHistoryRepository } from '@/databases/repositories/auth-provider-sync-history.repository';
|
||||
import { UserRepository } from '@/databases/repositories/user.repository';
|
||||
import { LDAP_DEFAULT_CONFIGURATION } from '@/ldap/constants';
|
||||
import { LdapService } from '@/ldap/ldap.service.ee';
|
||||
import { saveLdapSynchronization } from '@/ldap/helpers.ee';
|
||||
import { LdapService } from '@/ldap/ldap.service.ee';
|
||||
import { getCurrentAuthenticationMethod, setCurrentAuthenticationMethod } from '@/sso/sso-helpers';
|
||||
|
||||
import { randomEmail, randomName, uniqueId } from './../shared/random';
|
||||
import * as testDb from '../shared/test-db';
|
||||
import * as utils from '../shared/utils/';
|
||||
import { createLdapUser, createUser, getAllUsers, getLdapIdentities } from '../shared/db/users';
|
||||
import { getPersonalProject } from '../shared/db/projects';
|
||||
import { createLdapUser, createUser, getAllUsers, getLdapIdentities } from '../shared/db/users';
|
||||
import { createLdapConfig, defaultLdapConfig } from '../shared/ldap';
|
||||
import * as testDb from '../shared/test-db';
|
||||
import type { SuperAgentTest } from '../shared/types';
|
||||
import * as utils from '../shared/utils/';
|
||||
|
||||
jest.mock('@/telemetry');
|
||||
|
||||
|
||||
@@ -1,11 +1,13 @@
|
||||
import { LicenseMetricsRepository } from '@/databases/repositories/license-metrics.repository';
|
||||
import { createAdmin, createMember, createOwner, createUser } from './shared/db/users';
|
||||
import * as testDb from './shared/test-db';
|
||||
import Container from 'typedi';
|
||||
import { createManyWorkflows } from './shared/db/workflows';
|
||||
import { createManyCredentials } from './shared/db/credentials';
|
||||
import { WorkflowStatisticsRepository } from '@/databases/repositories/workflow-statistics.repository';
|
||||
|
||||
import { StatisticsNames } from '@/databases/entities/workflow-statistics';
|
||||
import { LicenseMetricsRepository } from '@/databases/repositories/license-metrics.repository';
|
||||
import { WorkflowStatisticsRepository } from '@/databases/repositories/workflow-statistics.repository';
|
||||
|
||||
import { createManyCredentials } from './shared/db/credentials';
|
||||
import { createAdmin, createMember, createOwner, createUser } from './shared/db/users';
|
||||
import { createManyWorkflows } from './shared/db/workflows';
|
||||
import * as testDb from './shared/test-db';
|
||||
|
||||
describe('LicenseMetricsRepository', () => {
|
||||
let licenseMetricsRepository: LicenseMetricsRepository;
|
||||
|
||||
@@ -1,14 +1,15 @@
|
||||
import nock from 'nock';
|
||||
|
||||
import config from '@/config';
|
||||
import { RESPONSE_ERROR_MESSAGES } from '@/constants';
|
||||
import type { User } from '@/databases/entities/user';
|
||||
import type { ILicensePostResponse, ILicenseReadResponse } from '@/interfaces';
|
||||
import { License } from '@/license';
|
||||
|
||||
import * as testDb from './shared/test-db';
|
||||
import * as utils from './shared/utils/';
|
||||
import { createUserShell } from './shared/db/users';
|
||||
import * as testDb from './shared/test-db';
|
||||
import type { SuperAgentTest } from './shared/types';
|
||||
import * as utils from './shared/utils/';
|
||||
|
||||
const MOCK_SERVER_URL = 'https://server.com/v1';
|
||||
const MOCK_RENEW_OFFSET = 259200;
|
||||
|
||||
@@ -1,20 +1,20 @@
|
||||
import { Container } from 'typedi';
|
||||
import { GlobalConfig } from '@n8n/config';
|
||||
import { IsNull } from '@n8n/typeorm';
|
||||
import type { IPersonalizationSurveyAnswersV4 } from 'n8n-workflow';
|
||||
import { Container } from 'typedi';
|
||||
import validator from 'validator';
|
||||
|
||||
import type { User } from '@/databases/entities/user';
|
||||
import { UserRepository } from '@/databases/repositories/user.repository';
|
||||
import { ProjectRepository } from '@/databases/repositories/project.repository';
|
||||
import { UserRepository } from '@/databases/repositories/user.repository';
|
||||
import { mockInstance } from '@test/mocking';
|
||||
|
||||
import { SUCCESS_RESPONSE_BODY } from './shared/constants';
|
||||
import { addApiKey, createOwner, createUser, createUserShell } from './shared/db/users';
|
||||
import { randomApiKey, randomEmail, randomName, randomValidPassword } from './shared/random';
|
||||
import * as testDb from './shared/test-db';
|
||||
import * as utils from './shared/utils/';
|
||||
import { addApiKey, createOwner, createUser, createUserShell } from './shared/db/users';
|
||||
import type { SuperAgentTest } from './shared/types';
|
||||
import { mockInstance } from '@test/mocking';
|
||||
import { GlobalConfig } from '@n8n/config';
|
||||
import type { IPersonalizationSurveyAnswersV4 } from 'n8n-workflow';
|
||||
import * as utils from './shared/utils/';
|
||||
|
||||
const testServer = utils.setupTestServer({ endpointGroups: ['me'] });
|
||||
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
import Container from 'typedi';
|
||||
import { randomInt, randomString } from 'n8n-workflow';
|
||||
import Container from 'typedi';
|
||||
|
||||
import { AuthService } from '@/auth/auth.service';
|
||||
import config from '@/config';
|
||||
@@ -7,10 +7,10 @@ import type { User } from '@/databases/entities/user';
|
||||
import { AuthUserRepository } from '@/databases/repositories/auth-user.repository';
|
||||
import { TOTPService } from '@/mfa/totp.service';
|
||||
|
||||
import { createUser, createUserWithMfaEnabled } from '../shared/db/users';
|
||||
import { randomValidPassword, uniqueId } from '../shared/random';
|
||||
import * as testDb from '../shared/test-db';
|
||||
import * as utils from '../shared/utils';
|
||||
import { randomValidPassword, uniqueId } from '../shared/random';
|
||||
import { createUser, createUserWithMfaEnabled } from '../shared/db/users';
|
||||
|
||||
jest.mock('@/telemetry');
|
||||
|
||||
|
||||
@@ -1,7 +1,8 @@
|
||||
import { createServer } from 'http';
|
||||
import { gzipSync, deflateSync } from 'zlib';
|
||||
import type { Request, Response } from 'express';
|
||||
import { createServer } from 'http';
|
||||
import request from 'supertest';
|
||||
import { gzipSync, deflateSync } from 'zlib';
|
||||
|
||||
import { rawBodyReader, bodyParser } from '@/middlewares/body-parser';
|
||||
|
||||
describe('bodyParser', () => {
|
||||
|
||||
@@ -5,6 +5,7 @@ import config from '@/config';
|
||||
import type { User } from '@/databases/entities/user';
|
||||
import { UserRepository } from '@/databases/repositories/user.repository';
|
||||
|
||||
import { createUserShell } from './shared/db/users';
|
||||
import {
|
||||
randomEmail,
|
||||
randomInvalidPassword,
|
||||
@@ -13,7 +14,6 @@ import {
|
||||
} from './shared/random';
|
||||
import * as testDb from './shared/test-db';
|
||||
import * as utils from './shared/utils/';
|
||||
import { createUserShell } from './shared/db/users';
|
||||
|
||||
const testServer = utils.setupTestServer({ endpointGroups: ['owner'] });
|
||||
|
||||
|
||||
@@ -1,22 +1,21 @@
|
||||
import { v4 as uuid } from 'uuid';
|
||||
import { compare } from 'bcryptjs';
|
||||
import { Container } from 'typedi';
|
||||
import { mock } from 'jest-mock-extended';
|
||||
import { randomString } from 'n8n-workflow';
|
||||
import { Container } from 'typedi';
|
||||
import { v4 as uuid } from 'uuid';
|
||||
|
||||
import { AuthService } from '@/auth/auth.service';
|
||||
import { License } from '@/license';
|
||||
import config from '@/config';
|
||||
import type { User } from '@/databases/entities/user';
|
||||
import { setCurrentAuthenticationMethod } from '@/sso/sso-helpers';
|
||||
import { ExternalHooks } from '@/external-hooks';
|
||||
import { JwtService } from '@/services/jwt.service';
|
||||
import { UserManagementMailer } from '@/user-management/email';
|
||||
import { UserRepository } from '@/databases/repositories/user.repository';
|
||||
import { ExternalHooks } from '@/external-hooks';
|
||||
import { License } from '@/license';
|
||||
import { JwtService } from '@/services/jwt.service';
|
||||
import { PasswordUtility } from '@/services/password.utility';
|
||||
import { setCurrentAuthenticationMethod } from '@/sso/sso-helpers';
|
||||
import { UserManagementMailer } from '@/user-management/email';
|
||||
|
||||
import { mockInstance } from '../shared/mocking';
|
||||
import { getAuthToken, setupTestServer } from './shared/utils';
|
||||
import { createUser } from './shared/db/users';
|
||||
import {
|
||||
randomEmail,
|
||||
randomInvalidPassword,
|
||||
@@ -24,7 +23,8 @@ import {
|
||||
randomValidPassword,
|
||||
} from './shared/random';
|
||||
import * as testDb from './shared/test-db';
|
||||
import { createUser } from './shared/db/users';
|
||||
import { getAuthToken, setupTestServer } from './shared/utils';
|
||||
import { mockInstance } from '../shared/mocking';
|
||||
|
||||
config.set('userManagement.jwtSecret', randomString(5, 10));
|
||||
|
||||
|
||||
@@ -1,26 +1,27 @@
|
||||
import { v4 as uuid } from 'uuid';
|
||||
import { Container } from 'typedi';
|
||||
import type { INode, INodeTypeData } from 'n8n-workflow';
|
||||
import { randomInt } from 'n8n-workflow';
|
||||
import { Container } from 'typedi';
|
||||
import { v4 as uuid } from 'uuid';
|
||||
|
||||
import type { Project } from '@/databases/entities/project';
|
||||
import type { User } from '@/databases/entities/user';
|
||||
import { WorkflowRepository } from '@/databases/repositories/workflow.repository';
|
||||
import type { WorkflowEntity } from '@/databases/entities/workflow-entity';
|
||||
import { ProjectRepository } from '@/databases/repositories/project.repository';
|
||||
import { SharedCredentialsRepository } from '@/databases/repositories/shared-credentials.repository';
|
||||
import { SharedWorkflowRepository } from '@/databases/repositories/shared-workflow.repository';
|
||||
import { WorkflowRepository } from '@/databases/repositories/workflow.repository';
|
||||
import { LoadNodesAndCredentials } from '@/load-nodes-and-credentials';
|
||||
import { NodeTypes } from '@/node-types';
|
||||
import { OwnershipService } from '@/services/ownership.service';
|
||||
import { PermissionChecker } from '@/user-management/permission-checker';
|
||||
|
||||
import { mockInstance } from '../shared/mocking';
|
||||
import { affixRoleToSaveCredential } from './shared/db/credentials';
|
||||
import { getPersonalProject } from './shared/db/projects';
|
||||
import { createOwner, createUser } from './shared/db/users';
|
||||
import { randomCredentialPayload as randomCred } from './shared/random';
|
||||
import * as testDb from './shared/test-db';
|
||||
import type { SaveCredentialFunction } from './shared/types';
|
||||
import { affixRoleToSaveCredential } from './shared/db/credentials';
|
||||
import { createOwner, createUser } from './shared/db/users';
|
||||
import { SharedCredentialsRepository } from '@/databases/repositories/shared-credentials.repository';
|
||||
import { getPersonalProject } from './shared/db/projects';
|
||||
import type { WorkflowEntity } from '@/databases/entities/workflow-entity';
|
||||
import type { Project } from '@/databases/entities/project';
|
||||
import { ProjectRepository } from '@/databases/repositories/project.repository';
|
||||
import { mockInstance } from '../shared/mocking';
|
||||
|
||||
const ownershipService = mockInstance(OwnershipService);
|
||||
|
||||
|
||||
@@ -1,6 +1,24 @@
|
||||
import * as testDb from './shared/test-db';
|
||||
import * as utils from './shared/utils/';
|
||||
import { createMember, createOwner, createUser } from './shared/db/users';
|
||||
import type { Scope } from '@n8n/permissions';
|
||||
import { EntityNotFoundError } from '@n8n/typeorm';
|
||||
import Container from 'typedi';
|
||||
|
||||
import { ActiveWorkflowManager } from '@/active-workflow-manager';
|
||||
import type { Project } from '@/databases/entities/project';
|
||||
import type { ProjectRole } from '@/databases/entities/project-relation';
|
||||
import type { GlobalRole } from '@/databases/entities/user';
|
||||
import { ProjectRelationRepository } from '@/databases/repositories/project-relation.repository';
|
||||
import { ProjectRepository } from '@/databases/repositories/project.repository';
|
||||
import { SharedCredentialsRepository } from '@/databases/repositories/shared-credentials.repository';
|
||||
import { SharedWorkflowRepository } from '@/databases/repositories/shared-workflow.repository';
|
||||
import { getWorkflowById } from '@/public-api/v1/handlers/workflows/workflows.service';
|
||||
import { CacheService } from '@/services/cache/cache.service';
|
||||
import { RoleService } from '@/services/role.service';
|
||||
|
||||
import {
|
||||
getCredentialById,
|
||||
saveCredential,
|
||||
shareCredentialWithProjects,
|
||||
} from './shared/db/credentials';
|
||||
import {
|
||||
createTeamProject,
|
||||
linkUserToProject,
|
||||
@@ -8,28 +26,12 @@ import {
|
||||
findProject,
|
||||
getProjectRelations,
|
||||
} from './shared/db/projects';
|
||||
import Container from 'typedi';
|
||||
import type { Project } from '@/databases/entities/project';
|
||||
import { ProjectRelationRepository } from '@/databases/repositories/project-relation.repository';
|
||||
import type { ProjectRole } from '@/databases/entities/project-relation';
|
||||
import { EntityNotFoundError } from '@n8n/typeorm';
|
||||
import { createMember, createOwner, createUser } from './shared/db/users';
|
||||
import { createWorkflow, shareWorkflowWithProjects } from './shared/db/workflows';
|
||||
import {
|
||||
getCredentialById,
|
||||
saveCredential,
|
||||
shareCredentialWithProjects,
|
||||
} from './shared/db/credentials';
|
||||
import { randomCredentialPayload } from './shared/random';
|
||||
import { getWorkflowById } from '@/public-api/v1/handlers/workflows/workflows.service';
|
||||
import { SharedWorkflowRepository } from '@/databases/repositories/shared-workflow.repository';
|
||||
import { SharedCredentialsRepository } from '@/databases/repositories/shared-credentials.repository';
|
||||
import type { GlobalRole } from '@/databases/entities/user';
|
||||
import type { Scope } from '@n8n/permissions';
|
||||
import { CacheService } from '@/services/cache/cache.service';
|
||||
import * as testDb from './shared/test-db';
|
||||
import * as utils from './shared/utils/';
|
||||
import { mockInstance } from '../shared/mocking';
|
||||
import { ActiveWorkflowManager } from '@/active-workflow-manager';
|
||||
import { ProjectRepository } from '@/databases/repositories/project.repository';
|
||||
import { RoleService } from '@/services/role.service';
|
||||
|
||||
const testServer = utils.setupTestServer({
|
||||
endpointGroups: ['project'],
|
||||
|
||||
@@ -1,10 +1,12 @@
|
||||
import Container from 'typedi';
|
||||
import { ProjectService } from '@/services/project.service';
|
||||
import * as testDb from './shared/test-db';
|
||||
|
||||
import { SharedWorkflowRepository } from '@/databases/repositories/shared-workflow.repository';
|
||||
import { ProjectService } from '@/services/project.service';
|
||||
|
||||
import { linkUserToProject, createTeamProject } from './shared/db/projects';
|
||||
import { createUser } from './shared/db/users';
|
||||
import { createWorkflow } from './shared/db/workflows';
|
||||
import { linkUserToProject, createTeamProject } from './shared/db/projects';
|
||||
import * as testDb from './shared/test-db';
|
||||
|
||||
describe('ProjectService', () => {
|
||||
let projectService: ProjectService;
|
||||
|
||||
@@ -1,13 +1,14 @@
|
||||
import { Container } from 'typedi';
|
||||
import { GlobalConfig } from '@n8n/config';
|
||||
import { parse as semverParse } from 'semver';
|
||||
import request, { type Response } from 'supertest';
|
||||
import { Container } from 'typedi';
|
||||
|
||||
import { N8N_VERSION } from '@/constants';
|
||||
import { PrometheusMetricsService } from '@/metrics/prometheus-metrics.service';
|
||||
import { setupTestServer } from './shared/utils';
|
||||
import { GlobalConfig } from '@n8n/config';
|
||||
import config from '@/config';
|
||||
import { N8N_VERSION } from '@/constants';
|
||||
import { EventService } from '@/events/event.service';
|
||||
import { PrometheusMetricsService } from '@/metrics/prometheus-metrics.service';
|
||||
|
||||
import { setupTestServer } from './shared/utils';
|
||||
|
||||
jest.unmock('@/eventbus/message-event-bus/message-event-bus');
|
||||
|
||||
|
||||
@@ -1,24 +1,24 @@
|
||||
import config from '@/config';
|
||||
import { mock } from 'jest-mock-extended';
|
||||
import { BinaryDataService, InstanceSettings } from 'n8n-core';
|
||||
import type { ExecutionStatus } from 'n8n-workflow';
|
||||
import Container from 'typedi';
|
||||
|
||||
import * as testDb from './shared/test-db';
|
||||
import config from '@/config';
|
||||
import { TIME } from '@/constants';
|
||||
import type { ExecutionEntity } from '@/databases/entities/execution-entity';
|
||||
import type { WorkflowEntity } from '@/databases/entities/workflow-entity';
|
||||
import { ExecutionRepository } from '@/databases/repositories/execution.repository';
|
||||
import { TIME } from '@/constants';
|
||||
import { PruningService } from '@/services/pruning.service';
|
||||
import { Logger } from '@/logger';
|
||||
import { PruningService } from '@/services/pruning.service';
|
||||
|
||||
import { mockInstance } from '../shared/mocking';
|
||||
import { createWorkflow } from './shared/db/workflows';
|
||||
import {
|
||||
annotateExecution,
|
||||
createExecution,
|
||||
createSuccessfulExecution,
|
||||
} from './shared/db/executions';
|
||||
import { mock } from 'jest-mock-extended';
|
||||
import { createWorkflow } from './shared/db/workflows';
|
||||
import * as testDb from './shared/test-db';
|
||||
import { mockInstance } from '../shared/mocking';
|
||||
|
||||
describe('softDeleteOnPruningCycle()', () => {
|
||||
let pruningService: PruningService;
|
||||
|
||||
@@ -1,18 +1,18 @@
|
||||
import { Container } from 'typedi';
|
||||
import { randomString } from 'n8n-workflow';
|
||||
import { Container } from 'typedi';
|
||||
|
||||
import type { User } from '@/databases/entities/user';
|
||||
import { CredentialsRepository } from '@/databases/repositories/credentials.repository';
|
||||
import { SharedCredentialsRepository } from '@/databases/repositories/shared-credentials.repository';
|
||||
import { createTeamProject } from '@test-integration/db/projects';
|
||||
|
||||
import { randomApiKey, randomName } from '../shared/random';
|
||||
import * as utils from '../shared/utils/';
|
||||
import type { CredentialPayload, SaveCredentialFunction } from '../shared/types';
|
||||
import * as testDb from '../shared/test-db';
|
||||
import { affixRoleToSaveCredential, createCredentials } from '../shared/db/credentials';
|
||||
import { addApiKey, createUser, createUserShell } from '../shared/db/users';
|
||||
import { randomApiKey, randomName } from '../shared/random';
|
||||
import * as testDb from '../shared/test-db';
|
||||
import type { CredentialPayload, SaveCredentialFunction } from '../shared/types';
|
||||
import type { SuperAgentTest } from '../shared/types';
|
||||
import { createTeamProject } from '@test-integration/db/projects';
|
||||
import * as utils from '../shared/utils/';
|
||||
|
||||
let owner: User;
|
||||
let member: User;
|
||||
|
||||
@@ -1,15 +1,10 @@
|
||||
import type { User } from '@/databases/entities/user';
|
||||
import type { ActiveWorkflowManager } from '@/active-workflow-manager';
|
||||
import type { ExecutionEntity } from '@/databases/entities/execution-entity';
|
||||
import type { User } from '@/databases/entities/user';
|
||||
import { Telemetry } from '@/telemetry';
|
||||
import { mockInstance } from '@test/mocking';
|
||||
import { createTeamProject } from '@test-integration/db/projects';
|
||||
|
||||
import { randomApiKey } from '../shared/random';
|
||||
import * as utils from '../shared/utils/';
|
||||
import * as testDb from '../shared/test-db';
|
||||
import { createUser } from '../shared/db/users';
|
||||
import {
|
||||
createManyWorkflows,
|
||||
createWorkflow,
|
||||
shareWorkflowWithUsers,
|
||||
} from '../shared/db/workflows';
|
||||
import {
|
||||
createErrorExecution,
|
||||
createExecution,
|
||||
@@ -17,11 +12,16 @@ import {
|
||||
createSuccessfulExecution,
|
||||
createWaitingExecution,
|
||||
} from '../shared/db/executions';
|
||||
import { createUser } from '../shared/db/users';
|
||||
import {
|
||||
createManyWorkflows,
|
||||
createWorkflow,
|
||||
shareWorkflowWithUsers,
|
||||
} from '../shared/db/workflows';
|
||||
import { randomApiKey } from '../shared/random';
|
||||
import * as testDb from '../shared/test-db';
|
||||
import type { SuperAgentTest } from '../shared/types';
|
||||
import { mockInstance } from '@test/mocking';
|
||||
import { Telemetry } from '@/telemetry';
|
||||
import { createTeamProject } from '@test-integration/db/projects';
|
||||
import type { ExecutionEntity } from '@/databases/entities/execution-entity';
|
||||
import * as utils from '../shared/utils/';
|
||||
|
||||
let owner: User;
|
||||
let user1: User;
|
||||
|
||||
@@ -1,10 +1,11 @@
|
||||
import { setupTestServer } from '@test-integration/utils';
|
||||
import { createMember, createOwner } from '@test-integration/db/users';
|
||||
import * as testDb from '../shared/test-db';
|
||||
import { FeatureNotLicensedError } from '@/errors/feature-not-licensed.error';
|
||||
import { createTeamProject, getProjectByNameOrFail } from '@test-integration/db/projects';
|
||||
import { mockInstance } from '@test/mocking';
|
||||
import { Telemetry } from '@/telemetry';
|
||||
import { mockInstance } from '@test/mocking';
|
||||
import { createTeamProject, getProjectByNameOrFail } from '@test-integration/db/projects';
|
||||
import { createMember, createOwner } from '@test-integration/db/users';
|
||||
import { setupTestServer } from '@test-integration/utils';
|
||||
|
||||
import * as testDb from '../shared/test-db';
|
||||
|
||||
describe('Projects in Public API', () => {
|
||||
const testServer = setupTestServer({ endpointGroups: ['publicApi'] });
|
||||
|
||||
@@ -1,13 +1,14 @@
|
||||
import { Container } from 'typedi';
|
||||
|
||||
import type { User } from '@/databases/entities/user';
|
||||
import { TagRepository } from '@/databases/repositories/tag.repository';
|
||||
|
||||
import { randomApiKey } from '../shared/random';
|
||||
import * as utils from '../shared/utils/';
|
||||
import * as testDb from '../shared/test-db';
|
||||
import { createUser } from '../shared/db/users';
|
||||
import { createTag } from '../shared/db/tags';
|
||||
import { createUser } from '../shared/db/users';
|
||||
import { randomApiKey } from '../shared/random';
|
||||
import * as testDb from '../shared/test-db';
|
||||
import type { SuperAgentTest } from '../shared/types';
|
||||
import * as utils from '../shared/utils/';
|
||||
|
||||
let owner: User;
|
||||
let member: User;
|
||||
|
||||
@@ -1,16 +1,16 @@
|
||||
import validator from 'validator';
|
||||
import { v4 as uuid } from 'uuid';
|
||||
import validator from 'validator';
|
||||
|
||||
import type { User } from '@/databases/entities/user';
|
||||
import { License } from '@/license';
|
||||
import { createTeamProject, linkUserToProject } from '@test-integration/db/projects';
|
||||
|
||||
import { mockInstance } from '../../shared/mocking';
|
||||
import { randomApiKey } from '../shared/random';
|
||||
import * as utils from '../shared/utils/';
|
||||
import * as testDb from '../shared/test-db';
|
||||
import { createOwner, createUser, createUserShell } from '../shared/db/users';
|
||||
import { randomApiKey } from '../shared/random';
|
||||
import * as testDb from '../shared/test-db';
|
||||
import type { SuperAgentTest } from '../shared/types';
|
||||
import { createTeamProject, linkUserToProject } from '@test-integration/db/projects';
|
||||
import type { User } from '@/databases/entities/user';
|
||||
import * as utils from '../shared/utils/';
|
||||
|
||||
mockInstance(License, {
|
||||
getUsersLimit: jest.fn().mockReturnValue(-1),
|
||||
|
||||
@@ -1,9 +1,10 @@
|
||||
import { setupTestServer } from '@test-integration/utils';
|
||||
import * as testDb from '../shared/test-db';
|
||||
import { createMember, createOwner, getUserById } from '@test-integration/db/users';
|
||||
import { mockInstance } from '@test/mocking';
|
||||
import { Telemetry } from '@/telemetry';
|
||||
import { FeatureNotLicensedError } from '@/errors/feature-not-licensed.error';
|
||||
import { Telemetry } from '@/telemetry';
|
||||
import { mockInstance } from '@test/mocking';
|
||||
import { createMember, createOwner, getUserById } from '@test-integration/db/users';
|
||||
import { setupTestServer } from '@test-integration/utils';
|
||||
|
||||
import * as testDb from '../shared/test-db';
|
||||
|
||||
describe('Users in Public API', () => {
|
||||
const testServer = setupTestServer({ endpointGroups: ['publicApi'] });
|
||||
|
||||
@@ -1,8 +1,9 @@
|
||||
import { setupTestServer } from '@test-integration/utils';
|
||||
import { FeatureNotLicensedError } from '@/errors/feature-not-licensed.error';
|
||||
import { createOwner } from '@test-integration/db/users';
|
||||
import { createVariable, getVariableOrFail } from '@test-integration/db/variables';
|
||||
import { setupTestServer } from '@test-integration/utils';
|
||||
|
||||
import * as testDb from '../shared/test-db';
|
||||
import { FeatureNotLicensedError } from '@/errors/feature-not-licensed.error';
|
||||
|
||||
describe('Variables in Public API', () => {
|
||||
const testServer = setupTestServer({ endpointGroups: ['publicApi'] });
|
||||
|
||||
@@ -1,28 +1,28 @@
|
||||
import { Container } from 'typedi';
|
||||
import type { INode } from 'n8n-workflow';
|
||||
import { Container } from 'typedi';
|
||||
|
||||
import { ActiveWorkflowManager } from '@/active-workflow-manager';
|
||||
import config from '@/config';
|
||||
import { STARTING_NODES } from '@/constants';
|
||||
import type { Project } from '@/databases/entities/project';
|
||||
import type { TagEntity } from '@/databases/entities/tag-entity';
|
||||
import type { User } from '@/databases/entities/user';
|
||||
import type { Project } from '@/databases/entities/project';
|
||||
import { ProjectRepository } from '@/databases/repositories/project.repository';
|
||||
import { SharedWorkflowRepository } from '@/databases/repositories/shared-workflow.repository';
|
||||
import { WorkflowHistoryRepository } from '@/databases/repositories/workflow-history.repository';
|
||||
import { ActiveWorkflowManager } from '@/active-workflow-manager';
|
||||
import { ExecutionService } from '@/executions/execution.service';
|
||||
import { ProjectService } from '@/services/project.service';
|
||||
import { Telemetry } from '@/telemetry';
|
||||
import { createTeamProject } from '@test-integration/db/projects';
|
||||
|
||||
import { randomApiKey } from '../shared/random';
|
||||
import * as utils from '../shared/utils/';
|
||||
import * as testDb from '../shared/test-db';
|
||||
import { mockInstance } from '../../shared/mocking';
|
||||
import { createTag } from '../shared/db/tags';
|
||||
import { createUser } from '../shared/db/users';
|
||||
import { createWorkflow, createWorkflowWithTrigger } from '../shared/db/workflows';
|
||||
import { createTag } from '../shared/db/tags';
|
||||
import { mockInstance } from '../../shared/mocking';
|
||||
import { randomApiKey } from '../shared/random';
|
||||
import * as testDb from '../shared/test-db';
|
||||
import type { SuperAgentTest } from '../shared/types';
|
||||
import { Telemetry } from '@/telemetry';
|
||||
import { ProjectService } from '@/services/project.service';
|
||||
import { createTeamProject } from '@test-integration/db/projects';
|
||||
import * as utils from '../shared/utils/';
|
||||
|
||||
mockInstance(Telemetry);
|
||||
|
||||
|
||||
@@ -1,15 +1,15 @@
|
||||
import { Container } from 'typedi';
|
||||
import type { Scope } from '@n8n/permissions';
|
||||
import { Container } from 'typedi';
|
||||
|
||||
import type { GlobalRole } from '@/databases/entities/user';
|
||||
import type { ProjectRole } from '@/databases/entities/project-relation';
|
||||
import type { CredentialSharingRole } from '@/databases/entities/shared-credentials';
|
||||
import type { WorkflowSharingRole } from '@/databases/entities/shared-workflow';
|
||||
import type { GlobalRole } from '@/databases/entities/user';
|
||||
import { RoleService } from '@/services/role.service';
|
||||
|
||||
import * as utils from './shared/utils/';
|
||||
import { createMember } from './shared/db/users';
|
||||
import type { SuperAgentTest } from './shared/types';
|
||||
import * as utils from './shared/utils/';
|
||||
|
||||
const testServer = utils.setupTestServer({
|
||||
endpointGroups: ['role'],
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
import * as helpers from '@/sso/saml/saml-helpers';
|
||||
import type { SamlUserAttributes } from '@/sso/saml/types/saml-user-attributes';
|
||||
import { getPersonalProject } from '../shared/db/projects';
|
||||
|
||||
import { getPersonalProject } from '../shared/db/projects';
|
||||
import * as testDb from '../shared/test-db';
|
||||
|
||||
beforeAll(async () => {
|
||||
|
||||
@@ -2,11 +2,11 @@ import type { User } from '@/databases/entities/user';
|
||||
import { setSamlLoginEnabled } from '@/sso/saml/saml-helpers';
|
||||
import { getCurrentAuthenticationMethod, setCurrentAuthenticationMethod } from '@/sso/sso-helpers';
|
||||
|
||||
import { randomEmail, randomName, randomValidPassword } from '../shared/random';
|
||||
import * as utils from '../shared/utils/';
|
||||
import { sampleConfig } from './sample-metadata';
|
||||
import { createOwner, createUser } from '../shared/db/users';
|
||||
import { randomEmail, randomName, randomValidPassword } from '../shared/random';
|
||||
import type { SuperAgentTest } from '../shared/types';
|
||||
import * as utils from '../shared/utils/';
|
||||
|
||||
let someUser: User;
|
||||
let owner: User;
|
||||
|
||||
@@ -1,15 +1,17 @@
|
||||
import Container from 'typedi';
|
||||
import { v4 as uuid } from 'uuid';
|
||||
|
||||
import config from '@/config';
|
||||
import { SecurityAuditService } from '@/security-audit/security-audit.service';
|
||||
import { CredentialsRepository } from '@/databases/repositories/credentials.repository';
|
||||
import { ExecutionDataRepository } from '@/databases/repositories/execution-data.repository';
|
||||
import { ExecutionRepository } from '@/databases/repositories/execution.repository';
|
||||
import { WorkflowRepository } from '@/databases/repositories/workflow.repository';
|
||||
import { generateNanoId } from '@/databases/utils/generators';
|
||||
import { CREDENTIALS_REPORT } from '@/security-audit/constants';
|
||||
import { SecurityAuditService } from '@/security-audit/security-audit.service';
|
||||
|
||||
import { getRiskSection } from './utils';
|
||||
import * as testDb from '../shared/test-db';
|
||||
import { generateNanoId } from '@/databases/utils/generators';
|
||||
import { WorkflowRepository } from '@/databases/repositories/workflow.repository';
|
||||
import Container from 'typedi';
|
||||
import { CredentialsRepository } from '@/databases/repositories/credentials.repository';
|
||||
import { ExecutionRepository } from '@/databases/repositories/execution.repository';
|
||||
import { ExecutionDataRepository } from '@/databases/repositories/execution-data.repository';
|
||||
|
||||
let securityAuditService: SecurityAuditService;
|
||||
|
||||
|
||||
@@ -1,15 +1,17 @@
|
||||
import Container from 'typedi';
|
||||
import { v4 as uuid } from 'uuid';
|
||||
import { SecurityAuditService } from '@/security-audit/security-audit.service';
|
||||
|
||||
import { WorkflowRepository } from '@/databases/repositories/workflow.repository';
|
||||
import { generateNanoId } from '@/databases/utils/generators';
|
||||
import {
|
||||
DATABASE_REPORT,
|
||||
SQL_NODE_TYPES,
|
||||
SQL_NODE_TYPES_WITH_QUERY_PARAMS,
|
||||
} from '@/security-audit/constants';
|
||||
import { SecurityAuditService } from '@/security-audit/security-audit.service';
|
||||
|
||||
import { getRiskSection, saveManualTriggerWorkflow } from './utils';
|
||||
import * as testDb from '../shared/test-db';
|
||||
import { generateNanoId } from '@/databases/utils/generators';
|
||||
import { WorkflowRepository } from '@/databases/repositories/workflow.repository';
|
||||
import Container from 'typedi';
|
||||
|
||||
let securityAuditService: SecurityAuditService;
|
||||
|
||||
|
||||
@@ -1,10 +1,12 @@
|
||||
import Container from 'typedi';
|
||||
import { v4 as uuid } from 'uuid';
|
||||
import { SecurityAuditService } from '@/security-audit/security-audit.service';
|
||||
|
||||
import { WorkflowRepository } from '@/databases/repositories/workflow.repository';
|
||||
import { FILESYSTEM_INTERACTION_NODE_TYPES, FILESYSTEM_REPORT } from '@/security-audit/constants';
|
||||
import { SecurityAuditService } from '@/security-audit/security-audit.service';
|
||||
|
||||
import { getRiskSection, saveManualTriggerWorkflow } from './utils';
|
||||
import * as testDb from '../shared/test-db';
|
||||
import { WorkflowRepository } from '@/databases/repositories/workflow.repository';
|
||||
import Container from 'typedi';
|
||||
|
||||
let securityAuditService: SecurityAuditService;
|
||||
|
||||
|
||||
@@ -1,6 +1,14 @@
|
||||
import { NodeConnectionType } from 'n8n-workflow';
|
||||
import Container from 'typedi';
|
||||
import { v4 as uuid } from 'uuid';
|
||||
import { SecurityAuditService } from '@/security-audit/security-audit.service';
|
||||
|
||||
import config from '@/config';
|
||||
import { WorkflowRepository } from '@/databases/repositories/workflow.repository';
|
||||
import { generateNanoId } from '@/databases/utils/generators';
|
||||
import { INSTANCE_REPORT, WEBHOOK_VALIDATOR_NODE_TYPES } from '@/security-audit/constants';
|
||||
import { SecurityAuditService } from '@/security-audit/security-audit.service';
|
||||
import { toReportTitle } from '@/security-audit/utils';
|
||||
|
||||
import {
|
||||
getRiskSection,
|
||||
saveManualTriggerWorkflow,
|
||||
@@ -9,12 +17,6 @@ import {
|
||||
simulateUpToDateInstance,
|
||||
} from './utils';
|
||||
import * as testDb from '../shared/test-db';
|
||||
import { toReportTitle } from '@/security-audit/utils';
|
||||
import config from '@/config';
|
||||
import { generateNanoId } from '@/databases/utils/generators';
|
||||
import { WorkflowRepository } from '@/databases/repositories/workflow.repository';
|
||||
import Container from 'typedi';
|
||||
import { NodeConnectionType } from 'n8n-workflow';
|
||||
|
||||
let securityAuditService: SecurityAuditService;
|
||||
|
||||
|
||||
@@ -1,15 +1,16 @@
|
||||
import { v4 as uuid } from 'uuid';
|
||||
import { Container } from 'typedi';
|
||||
import { SecurityAuditService } from '@/security-audit/security-audit.service';
|
||||
import { OFFICIAL_RISKY_NODE_TYPES, NODES_REPORT } from '@/security-audit/constants';
|
||||
import { toReportTitle } from '@/security-audit/utils';
|
||||
import { v4 as uuid } from 'uuid';
|
||||
|
||||
import { WorkflowRepository } from '@/databases/repositories/workflow.repository';
|
||||
import { LoadNodesAndCredentials } from '@/load-nodes-and-credentials';
|
||||
import { NodeTypes } from '@/node-types';
|
||||
import { OFFICIAL_RISKY_NODE_TYPES, NODES_REPORT } from '@/security-audit/constants';
|
||||
import { SecurityAuditService } from '@/security-audit/security-audit.service';
|
||||
import { toReportTitle } from '@/security-audit/utils';
|
||||
import { CommunityPackagesService } from '@/services/community-packages.service';
|
||||
import { WorkflowRepository } from '@/databases/repositories/workflow.repository';
|
||||
|
||||
import { mockInstance } from '../../shared/mocking';
|
||||
import { getRiskSection, MOCK_PACKAGE, saveManualTriggerWorkflow } from './utils';
|
||||
import { mockInstance } from '../../shared/mocking';
|
||||
import * as testDb from '../shared/test-db';
|
||||
|
||||
const nodesAndCredentials = mockInstance(LoadNodesAndCredentials);
|
||||
|
||||
@@ -1,13 +1,14 @@
|
||||
import { GlobalConfig } from '@n8n/config';
|
||||
import nock from 'nock';
|
||||
import Container from 'typedi';
|
||||
import { v4 as uuid } from 'uuid';
|
||||
import { toReportTitle } from '@/security-audit/utils';
|
||||
|
||||
import * as constants from '@/constants';
|
||||
import type { Risk } from '@/security-audit/types';
|
||||
import type { InstalledNodes } from '@/databases/entities/installed-nodes';
|
||||
import type { InstalledPackages } from '@/databases/entities/installed-packages';
|
||||
import { WorkflowRepository } from '@/databases/repositories/workflow.repository';
|
||||
import Container from 'typedi';
|
||||
import { GlobalConfig } from '@n8n/config';
|
||||
import type { Risk } from '@/security-audit/types';
|
||||
import { toReportTitle } from '@/security-audit/utils';
|
||||
|
||||
type GetSectionKind<C extends Risk.Category> = C extends 'instance'
|
||||
? Risk.InstanceSection
|
||||
|
||||
@@ -1,10 +1,12 @@
|
||||
import * as testDb from '../shared/test-db';
|
||||
import Container from 'typedi';
|
||||
|
||||
import { ExecutionMetadataRepository } from '@/databases/repositories/execution-metadata.repository';
|
||||
import { ExecutionMetadataService } from '@/services/execution-metadata.service';
|
||||
import { createExecution } from '@test-integration/db/executions';
|
||||
import { createWorkflow } from '@test-integration/db/workflows';
|
||||
|
||||
import * as testDb from '../shared/test-db';
|
||||
|
||||
let executionMetadataRepository: ExecutionMetadataRepository;
|
||||
let executionMetadataService: ExecutionMetadataService;
|
||||
|
||||
|
||||
@@ -1,11 +1,13 @@
|
||||
import { ProjectService } from '@/services/project.service';
|
||||
import * as testDb from '../shared/test-db';
|
||||
import Container from 'typedi';
|
||||
import { createMember } from '../shared/db/users';
|
||||
import { ProjectRepository } from '@/databases/repositories/project.repository';
|
||||
import { ProjectRelationRepository } from '@/databases/repositories/project-relation.repository';
|
||||
import type { ProjectRole } from '@/databases/entities/project-relation';
|
||||
import type { Scope } from '@n8n/permissions';
|
||||
import Container from 'typedi';
|
||||
|
||||
import type { ProjectRole } from '@/databases/entities/project-relation';
|
||||
import { ProjectRelationRepository } from '@/databases/repositories/project-relation.repository';
|
||||
import { ProjectRepository } from '@/databases/repositories/project.repository';
|
||||
import { ProjectService } from '@/services/project.service';
|
||||
|
||||
import { createMember } from '../shared/db/users';
|
||||
import * as testDb from '../shared/test-db';
|
||||
|
||||
let projectRepository: ProjectRepository;
|
||||
let projectService: ProjectService;
|
||||
|
||||
@@ -1,11 +1,12 @@
|
||||
import { WorkflowStaticDataService } from '@/workflows/workflow-static-data.service';
|
||||
import * as testDb from '@test-integration/test-db';
|
||||
import Container from 'typedi';
|
||||
import { createWorkflow } from '@test-integration/db/workflows';
|
||||
import { Workflow } from 'n8n-workflow';
|
||||
import { mockInstance } from '@test/mocking';
|
||||
import { NodeTypes } from '@/node-types';
|
||||
import Container from 'typedi';
|
||||
|
||||
import { WorkflowRepository } from '@/databases/repositories/workflow.repository';
|
||||
import { NodeTypes } from '@/node-types';
|
||||
import { WorkflowStaticDataService } from '@/workflows/workflow-static-data.service';
|
||||
import { mockInstance } from '@test/mocking';
|
||||
import { createWorkflow } from '@test-integration/db/workflows';
|
||||
import * as testDb from '@test-integration/test-db';
|
||||
|
||||
const nodeTypes = mockInstance(NodeTypes);
|
||||
let workflowStaticDataService: WorkflowStaticDataService;
|
||||
|
||||
@@ -1,13 +1,15 @@
|
||||
import { Container } from 'typedi';
|
||||
|
||||
import { CredentialsEntity } from '@/databases/entities/credentials-entity';
|
||||
import type { Project } from '@/databases/entities/project';
|
||||
import type { CredentialSharingRole } from '@/databases/entities/shared-credentials';
|
||||
import type { User } from '@/databases/entities/user';
|
||||
import { CredentialsRepository } from '@/databases/repositories/credentials.repository';
|
||||
import { SharedCredentialsRepository } from '@/databases/repositories/shared-credentials.repository';
|
||||
import type { CredentialSharingRole } from '@/databases/entities/shared-credentials';
|
||||
import type { ICredentialsDb } from '@/interfaces';
|
||||
import type { CredentialPayload } from '../types';
|
||||
import { ProjectRepository } from '@/databases/repositories/project.repository';
|
||||
import type { Project } from '@/databases/entities/project';
|
||||
import { SharedCredentialsRepository } from '@/databases/repositories/shared-credentials.repository';
|
||||
import type { ICredentialsDb } from '@/interfaces';
|
||||
|
||||
import type { CredentialPayload } from '../types';
|
||||
|
||||
export async function encryptCredentialData(
|
||||
credential: CredentialsEntity,
|
||||
|
||||
@@ -1,15 +1,16 @@
|
||||
import type { AnnotationVote } from 'n8n-workflow';
|
||||
import Container from 'typedi';
|
||||
|
||||
import type { ExecutionData } from '@/databases/entities/execution-data';
|
||||
import type { ExecutionEntity } from '@/databases/entities/execution-entity';
|
||||
import type { WorkflowEntity } from '@/databases/entities/workflow-entity';
|
||||
import { ExecutionRepository } from '@/databases/repositories/execution.repository';
|
||||
import { AnnotationTagRepository } from '@/databases/repositories/annotation-tag.repository';
|
||||
import { ExecutionDataRepository } from '@/databases/repositories/execution-data.repository';
|
||||
import { ExecutionMetadataRepository } from '@/databases/repositories/execution-metadata.repository';
|
||||
import { ExecutionRepository } from '@/databases/repositories/execution.repository';
|
||||
import { ExecutionService } from '@/executions/execution.service';
|
||||
import type { AnnotationVote } from 'n8n-workflow';
|
||||
import { mockInstance } from '@test/mocking';
|
||||
import { Telemetry } from '@/telemetry';
|
||||
import { AnnotationTagRepository } from '@/databases/repositories/annotation-tag.repository';
|
||||
import { mockInstance } from '@test/mocking';
|
||||
|
||||
mockInstance(Telemetry);
|
||||
|
||||
|
||||
@@ -1,11 +1,12 @@
|
||||
import Container from 'typedi';
|
||||
|
||||
import { ProjectRepository } from '@/databases/repositories/project.repository';
|
||||
import { randomName } from '../random';
|
||||
import { ProjectRelationRepository } from '@/databases/repositories/project-relation.repository';
|
||||
import type { User } from '@/databases/entities/user';
|
||||
import type { Project } from '@/databases/entities/project';
|
||||
import type { ProjectRelation, ProjectRole } from '@/databases/entities/project-relation';
|
||||
import type { User } from '@/databases/entities/user';
|
||||
import { ProjectRelationRepository } from '@/databases/repositories/project-relation.repository';
|
||||
import { ProjectRepository } from '@/databases/repositories/project.repository';
|
||||
|
||||
import { randomName } from '../random';
|
||||
|
||||
export const createTeamProject = async (name?: string, adminUser?: User) => {
|
||||
const projectRepository = Container.get(ProjectRepository);
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
import Container from 'typedi';
|
||||
|
||||
import type { TagEntity } from '@/databases/entities/tag-entity';
|
||||
import type { WorkflowEntity } from '@/databases/entities/workflow-entity';
|
||||
import { TagRepository } from '@/databases/repositories/tag.repository';
|
||||
|
||||
@@ -1,14 +1,15 @@
|
||||
import Container from 'typedi';
|
||||
import { hash } from 'bcryptjs';
|
||||
import Container from 'typedi';
|
||||
|
||||
import { AuthIdentity } from '@/databases/entities/auth-identity';
|
||||
import { type GlobalRole, type User } from '@/databases/entities/user';
|
||||
import { AuthIdentityRepository } from '@/databases/repositories/auth-identity.repository';
|
||||
import { AuthUserRepository } from '@/databases/repositories/auth-user.repository';
|
||||
import { UserRepository } from '@/databases/repositories/user.repository';
|
||||
import { TOTPService } from '@/mfa/totp.service';
|
||||
import { MfaService } from '@/mfa/mfa.service';
|
||||
import { TOTPService } from '@/mfa/totp.service';
|
||||
|
||||
import { randomApiKey, randomEmail, randomName, randomValidPassword } from '../random';
|
||||
import { AuthUserRepository } from '@/databases/repositories/auth-user.repository';
|
||||
|
||||
// pre-computed bcrypt hash for the string 'password', using `await hash('password', 10)`
|
||||
const passwordHash = '$2a$10$njedH7S6V5898mj6p0Jr..IGY9Ms.qNwR7RbSzzX9yubJocKfvGGK';
|
||||
|
||||
@@ -1,8 +1,9 @@
|
||||
import { VariablesRepository } from '@/databases/repositories/variables.repository';
|
||||
import { generateNanoId } from '@/databases/utils/generators';
|
||||
import { randomString } from 'n8n-workflow';
|
||||
import Container from 'typedi';
|
||||
|
||||
import { VariablesRepository } from '@/databases/repositories/variables.repository';
|
||||
import { generateNanoId } from '@/databases/utils/generators';
|
||||
|
||||
export async function createVariable(key = randomString(5), value = randomString(5)) {
|
||||
return await Container.get(VariablesRepository).save({ id: generateNanoId(), key, value });
|
||||
}
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
import Container from 'typedi';
|
||||
import { v4 as uuid } from 'uuid';
|
||||
|
||||
import type { WorkflowHistory } from '@/databases/entities/workflow-history';
|
||||
import { WorkflowHistoryRepository } from '@/databases/repositories/workflow-history.repository';
|
||||
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
import Container from 'typedi';
|
||||
import { StatisticsNames, type WorkflowStatistics } from '@/databases/entities/workflow-statistics';
|
||||
import type { Workflow } from 'n8n-workflow';
|
||||
import Container from 'typedi';
|
||||
|
||||
import { StatisticsNames, type WorkflowStatistics } from '@/databases/entities/workflow-statistics';
|
||||
import { WorkflowStatisticsRepository } from '@/databases/repositories/workflow-statistics.repository';
|
||||
|
||||
export async function createWorkflowStatisticsItem(
|
||||
|
||||
@@ -1,15 +1,15 @@
|
||||
import Container from 'typedi';
|
||||
import type { DeepPartial } from '@n8n/typeorm';
|
||||
import { NodeConnectionType } from 'n8n-workflow';
|
||||
import Container from 'typedi';
|
||||
import { v4 as uuid } from 'uuid';
|
||||
|
||||
import { Project } from '@/databases/entities/project';
|
||||
import type { SharedWorkflow, WorkflowSharingRole } from '@/databases/entities/shared-workflow';
|
||||
import { User } from '@/databases/entities/user';
|
||||
import type { WorkflowEntity } from '@/databases/entities/workflow-entity';
|
||||
import { ProjectRepository } from '@/databases/repositories/project.repository';
|
||||
import { SharedWorkflowRepository } from '@/databases/repositories/shared-workflow.repository';
|
||||
import { WorkflowRepository } from '@/databases/repositories/workflow.repository';
|
||||
import type { SharedWorkflow, WorkflowSharingRole } from '@/databases/entities/shared-workflow';
|
||||
import { ProjectRepository } from '@/databases/repositories/project.repository';
|
||||
import { Project } from '@/databases/entities/project';
|
||||
import { NodeConnectionType } from 'n8n-workflow';
|
||||
|
||||
export async function createManyWorkflows(
|
||||
amount: number,
|
||||
|
||||
@@ -1,9 +1,10 @@
|
||||
import { LDAP_DEFAULT_CONFIGURATION, LDAP_FEATURE_NAME } from '@/ldap/constants';
|
||||
import type { LdapConfig } from '@/ldap/types';
|
||||
import { SettingsRepository } from '@/databases/repositories/settings.repository';
|
||||
import { jsonParse } from 'n8n-workflow';
|
||||
import Container from 'typedi';
|
||||
|
||||
import { SettingsRepository } from '@/databases/repositories/settings.repository';
|
||||
import { LDAP_DEFAULT_CONFIGURATION, LDAP_FEATURE_NAME } from '@/ldap/constants';
|
||||
import type { LdapConfig } from '@/ldap/types';
|
||||
|
||||
export const defaultLdapConfig = {
|
||||
...LDAP_DEFAULT_CONFIGURATION,
|
||||
loginEnabled: true,
|
||||
|
||||
@@ -1,7 +1,8 @@
|
||||
import { v4 as uuid } from 'uuid';
|
||||
import { randomInt, randomString, UPPERCASE_LETTERS } from 'n8n-workflow';
|
||||
import { v4 as uuid } from 'uuid';
|
||||
|
||||
import { MIN_PASSWORD_CHAR_LENGTH, MAX_PASSWORD_CHAR_LENGTH } from '@/constants';
|
||||
|
||||
import type { CredentialPayload } from './types';
|
||||
|
||||
export const randomApiKey = () => `n8n_api_${randomString(40)}`;
|
||||
|
||||
@@ -1,13 +1,13 @@
|
||||
import { Container } from 'typedi';
|
||||
import { GlobalConfig } from '@n8n/config';
|
||||
import type { DataSourceOptions, Repository } from '@n8n/typeorm';
|
||||
import { DataSource as Connection } from '@n8n/typeorm';
|
||||
import { GlobalConfig } from '@n8n/config';
|
||||
import { kebabCase } from 'lodash';
|
||||
import type { Class } from 'n8n-core';
|
||||
import { randomString } from 'n8n-workflow';
|
||||
import { Container } from 'typedi';
|
||||
|
||||
import * as Db from '@/db';
|
||||
import { getOptionOverrides } from '@/databases/config';
|
||||
import { kebabCase } from 'lodash';
|
||||
import * as Db from '@/db';
|
||||
|
||||
export const testDbPrefix = 'n8n_test_';
|
||||
|
||||
|
||||
@@ -1,13 +1,14 @@
|
||||
import type { Application } from 'express';
|
||||
import type { Server } from 'http';
|
||||
import type { ICredentialDataDecryptedObject } from 'n8n-workflow';
|
||||
import type TestAgent from 'supertest/lib/agent';
|
||||
import type { Server } from 'http';
|
||||
|
||||
import type { CredentialsEntity } from '@/databases/entities/credentials-entity';
|
||||
import type { Project } from '@/databases/entities/project';
|
||||
import type { User } from '@/databases/entities/user';
|
||||
import type { BooleanLicenseFeature, ICredentialsDb, NumericLicenseFeature } from '@/interfaces';
|
||||
|
||||
import type { LicenseMocker } from './license';
|
||||
import type { Project } from '@/databases/entities/project';
|
||||
|
||||
type EndpointGroup =
|
||||
| 'health'
|
||||
|
||||
@@ -1,11 +1,12 @@
|
||||
import Container from 'typedi';
|
||||
|
||||
import { NODE_PACKAGE_PREFIX } from '@/constants';
|
||||
import { InstalledPackages } from '@/databases/entities/installed-packages';
|
||||
|
||||
import { randomName } from '../random';
|
||||
import { COMMUNITY_NODE_VERSION, COMMUNITY_PACKAGE_VERSION } from '../constants';
|
||||
import { InstalledNodesRepository } from '@/databases/repositories/installed-nodes.repository';
|
||||
import { InstalledPackagesRepository } from '@/databases/repositories/installed-packages.repository';
|
||||
import Container from 'typedi';
|
||||
|
||||
import { COMMUNITY_NODE_VERSION, COMMUNITY_PACKAGE_VERSION } from '../constants';
|
||||
import { randomName } from '../random';
|
||||
|
||||
export const mockPackageName = () => NODE_PACKAGE_PREFIX + randomName();
|
||||
|
||||
|
||||
@@ -1,18 +1,18 @@
|
||||
import { Container } from 'typedi';
|
||||
import { BinaryDataService } from 'n8n-core';
|
||||
import { type INode } from 'n8n-workflow';
|
||||
import { GithubApi } from 'n8n-nodes-base/credentials/GithubApi.credentials';
|
||||
import { Ftp } from 'n8n-nodes-base/credentials/Ftp.credentials';
|
||||
import { GithubApi } from 'n8n-nodes-base/credentials/GithubApi.credentials';
|
||||
import { Cron } from 'n8n-nodes-base/nodes/Cron/Cron.node';
|
||||
import { Set } from 'n8n-nodes-base/nodes/Set/Set.node';
|
||||
import { Start } from 'n8n-nodes-base/nodes/Start/Start.node';
|
||||
import { type INode } from 'n8n-workflow';
|
||||
import type request from 'supertest';
|
||||
import { Container } from 'typedi';
|
||||
import { v4 as uuid } from 'uuid';
|
||||
|
||||
import config from '@/config';
|
||||
import { AUTH_COOKIE_NAME } from '@/constants';
|
||||
import { WorkflowEntity } from '@/databases/entities/workflow-entity';
|
||||
import { SettingsRepository } from '@/databases/repositories/settings.repository';
|
||||
import { AUTH_COOKIE_NAME } from '@/constants';
|
||||
import { ExecutionService } from '@/executions/execution.service';
|
||||
import { LoadNodesAndCredentials } from '@/load-nodes-and-credentials';
|
||||
import { Push } from '@/push';
|
||||
|
||||
@@ -1,12 +1,13 @@
|
||||
import type { Config } from '@oclif/core';
|
||||
import type { Class } from 'n8n-core';
|
||||
import { mock } from 'jest-mock-extended';
|
||||
import type { Class } from 'n8n-core';
|
||||
|
||||
import type { BaseCommand } from '@/commands/base-command';
|
||||
import * as testDb from '../test-db';
|
||||
import { MessageEventBus } from '@/eventbus/message-event-bus/message-event-bus';
|
||||
import { TelemetryEventRelay } from '@/events/telemetry-event-relay';
|
||||
import { mockInstance } from '@test/mocking';
|
||||
import { MessageEventBus } from '@/eventbus/message-event-bus/message-event-bus';
|
||||
|
||||
import * as testDb from '../test-db';
|
||||
|
||||
mockInstance(MessageEventBus);
|
||||
|
||||
|
||||
@@ -1,27 +1,28 @@
|
||||
import { Container } from 'typedi';
|
||||
import cookieParser from 'cookie-parser';
|
||||
import express from 'express';
|
||||
import type superagent from 'superagent';
|
||||
import request from 'supertest';
|
||||
import { Container } from 'typedi';
|
||||
import { URL } from 'url';
|
||||
|
||||
import { AuthService } from '@/auth/auth.service';
|
||||
import config from '@/config';
|
||||
import { AUTH_COOKIE_NAME } from '@/constants';
|
||||
import type { User } from '@/databases/entities/user';
|
||||
import { ControllerRegistry } from '@/decorators';
|
||||
import { License } from '@/license';
|
||||
import { Logger } from '@/logger';
|
||||
import { rawBodyReader, bodyParser } from '@/middlewares';
|
||||
import { PostHogClient } from '@/posthog';
|
||||
import { Push } from '@/push';
|
||||
import { License } from '@/license';
|
||||
import { Logger } from '@/logger';
|
||||
import { AuthService } from '@/auth/auth.service';
|
||||
import type { APIRequest } from '@/requests';
|
||||
import { Telemetry } from '@/telemetry';
|
||||
|
||||
import { mockInstance } from '../../../shared/mocking';
|
||||
import * as testDb from '../test-db';
|
||||
import { PUBLIC_API_REST_PATH_SEGMENT, REST_PATH_SEGMENT } from '../constants';
|
||||
import type { SetupProps, TestServer } from '../types';
|
||||
import { LicenseMocker } from '../license';
|
||||
import * as testDb from '../test-db';
|
||||
import type { SetupProps, TestServer } from '../types';
|
||||
|
||||
/**
|
||||
* Plugin to prefix a path segment into a request URL pathname.
|
||||
@@ -90,6 +91,7 @@ export const setupTestServer = ({
|
||||
mockInstance(Logger);
|
||||
mockInstance(PostHogClient);
|
||||
mockInstance(Push);
|
||||
mockInstance(Telemetry);
|
||||
|
||||
const testServer: TestServer = {
|
||||
app,
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
import type { PublicUser } from '@/interfaces';
|
||||
import type { User } from '@/databases/entities/user';
|
||||
import type { PublicUser } from '@/interfaces';
|
||||
|
||||
export const validateUser = (user: PublicUser) => {
|
||||
expect(typeof user.id).toBe('string');
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
import type { INode } from 'n8n-workflow';
|
||||
|
||||
import { WorkflowEntity } from '@/databases/entities/workflow-entity';
|
||||
|
||||
export const FIRST_CREDENTIAL_ID = '1';
|
||||
|
||||
@@ -2,10 +2,10 @@ import { Container } from 'typedi';
|
||||
|
||||
import { TagRepository } from '@/databases/repositories/tag.repository';
|
||||
|
||||
import * as utils from './shared/utils/';
|
||||
import { createUserShell } from './shared/db/users';
|
||||
import * as testDb from './shared/test-db';
|
||||
import type { SuperAgentTest } from './shared/types';
|
||||
import { createUserShell } from './shared/db/users';
|
||||
import * as utils from './shared/utils/';
|
||||
|
||||
let authOwnerAgent: SuperAgentTest;
|
||||
const testServer = utils.setupTestServer({ endpointGroups: ['tags'] });
|
||||
|
||||
@@ -1,9 +1,11 @@
|
||||
import Container from 'typedi';
|
||||
import { UserRepository } from '@/databases/repositories/user.repository';
|
||||
import { createAdmin, createMember, createOwner } from './shared/db/users';
|
||||
import * as testDb from './shared/test-db';
|
||||
import { randomEmail } from './shared/random';
|
||||
|
||||
import { ProjectRelationRepository } from '@/databases/repositories/project-relation.repository';
|
||||
import { UserRepository } from '@/databases/repositories/user.repository';
|
||||
|
||||
import { createAdmin, createMember, createOwner } from './shared/db/users';
|
||||
import { randomEmail } from './shared/random';
|
||||
import * as testDb from './shared/test-db';
|
||||
|
||||
describe('UserRepository', () => {
|
||||
let userRepository: UserRepository;
|
||||
|
||||
@@ -4,30 +4,30 @@ import { v4 as uuid } from 'uuid';
|
||||
import { RESPONSE_ERROR_MESSAGES } from '@/constants';
|
||||
import { UsersController } from '@/controllers/users.controller';
|
||||
import type { User } from '@/databases/entities/user';
|
||||
import { ProjectRepository } from '@/databases/repositories/project.repository';
|
||||
import { ProjectRelationRepository } from '@/databases/repositories/project-relation.repository';
|
||||
import { UserRepository } from '@/databases/repositories/user.repository';
|
||||
import { ProjectRepository } from '@/databases/repositories/project.repository';
|
||||
import { SharedCredentialsRepository } from '@/databases/repositories/shared-credentials.repository';
|
||||
import { SharedWorkflowRepository } from '@/databases/repositories/shared-workflow.repository';
|
||||
import { CacheService } from '@/services/cache/cache.service';
|
||||
import { UserRepository } from '@/databases/repositories/user.repository';
|
||||
import { ExecutionService } from '@/executions/execution.service';
|
||||
import { CacheService } from '@/services/cache/cache.service';
|
||||
import { Telemetry } from '@/telemetry';
|
||||
|
||||
import { SUCCESS_RESPONSE_BODY } from './shared/constants';
|
||||
import {
|
||||
getCredentialById,
|
||||
saveCredential,
|
||||
shareCredentialWithUsers,
|
||||
} from './shared/db/credentials';
|
||||
import { createTeamProject, getPersonalProject, linkUserToProject } from './shared/db/projects';
|
||||
import { createAdmin, createMember, createOwner, getUserById } from './shared/db/users';
|
||||
import { createWorkflow, getWorkflowById, shareWorkflowWithUsers } from './shared/db/workflows';
|
||||
import { SUCCESS_RESPONSE_BODY } from './shared/constants';
|
||||
import { validateUser } from './shared/utils/users';
|
||||
import { randomCredentialPayload } from './shared/random';
|
||||
import * as utils from './shared/utils/';
|
||||
import * as testDb from './shared/test-db';
|
||||
import { mockInstance } from '../shared/mocking';
|
||||
import type { SuperAgentTest } from './shared/types';
|
||||
import { createTeamProject, getPersonalProject, linkUserToProject } from './shared/db/projects';
|
||||
import { Telemetry } from '@/telemetry';
|
||||
import * as utils from './shared/utils/';
|
||||
import { validateUser } from './shared/utils/users';
|
||||
import { mockInstance } from '../shared/mocking';
|
||||
|
||||
mockInstance(Telemetry);
|
||||
mockInstance(ExecutionService);
|
||||
|
||||
@@ -5,10 +5,10 @@ import { VariablesRepository } from '@/databases/repositories/variables.reposito
|
||||
import { generateNanoId } from '@/databases/utils/generators';
|
||||
import { VariablesService } from '@/environments/variables/variables.service.ee';
|
||||
|
||||
import * as testDb from './shared/test-db';
|
||||
import * as utils from './shared/utils/';
|
||||
import { createOwner, createUser } from './shared/db/users';
|
||||
import * as testDb from './shared/test-db';
|
||||
import type { SuperAgentTest } from './shared/types';
|
||||
import * as utils from './shared/utils/';
|
||||
|
||||
let authOwnerAgent: SuperAgentTest;
|
||||
let authMemberAgent: SuperAgentTest;
|
||||
|
||||
@@ -1,25 +1,25 @@
|
||||
import { readFileSync } from 'fs';
|
||||
import { agent as testAgent } from 'supertest';
|
||||
import {
|
||||
NodeConnectionType,
|
||||
type INodeType,
|
||||
type INodeTypeDescription,
|
||||
type IWebhookFunctions,
|
||||
} from 'n8n-workflow';
|
||||
import { agent as testAgent } from 'supertest';
|
||||
|
||||
import { AbstractServer } from '@/abstract-server';
|
||||
import type { WorkflowEntity } from '@/databases/entities/workflow-entity';
|
||||
import { ExternalHooks } from '@/external-hooks';
|
||||
import { NodeTypes } from '@/node-types';
|
||||
import { Push } from '@/push';
|
||||
import type { WorkflowEntity } from '@/databases/entities/workflow-entity';
|
||||
import { Telemetry } from '@/telemetry';
|
||||
|
||||
import { mockInstance } from '../shared/mocking';
|
||||
import { initActiveWorkflowManager } from './shared/utils';
|
||||
import * as testDb from './shared/test-db';
|
||||
import { createUser } from './shared/db/users';
|
||||
import { createWorkflow } from './shared/db/workflows';
|
||||
import * as testDb from './shared/test-db';
|
||||
import type { SuperAgentTest } from './shared/types';
|
||||
import { Telemetry } from '@/telemetry';
|
||||
import { initActiveWorkflowManager } from './shared/utils';
|
||||
import { mockInstance } from '../shared/mocking';
|
||||
|
||||
mockInstance(Telemetry);
|
||||
|
||||
|
||||
@@ -1,18 +1,17 @@
|
||||
import type SuperAgentTest from 'supertest/lib/agent';
|
||||
import { agent as testAgent } from 'supertest';
|
||||
import { GlobalConfig } from '@n8n/config';
|
||||
import { mock } from 'jest-mock-extended';
|
||||
import { agent as testAgent } from 'supertest';
|
||||
import type SuperAgentTest from 'supertest/lib/agent';
|
||||
import Container from 'typedi';
|
||||
|
||||
import { AbstractServer } from '@/abstract-server';
|
||||
import { LiveWebhooks } from '@/webhooks/live-webhooks';
|
||||
import { ExternalHooks } from '@/external-hooks';
|
||||
import { WaitingForms } from '@/waiting-forms';
|
||||
import { LiveWebhooks } from '@/webhooks/live-webhooks';
|
||||
import { TestWebhooks } from '@/webhooks/test-webhooks';
|
||||
import { WaitingWebhooks } from '@/webhooks/waiting-webhooks';
|
||||
import { WaitingForms } from '@/waiting-forms';
|
||||
import type { IWebhookResponseCallbackData } from '@/webhooks/webhook.types';
|
||||
|
||||
import { mockInstance } from '@test/mocking';
|
||||
import { GlobalConfig } from '@n8n/config';
|
||||
import Container from 'typedi';
|
||||
|
||||
let agent: SuperAgentTest;
|
||||
|
||||
|
||||
@@ -1,16 +1,16 @@
|
||||
import Container from 'typedi';
|
||||
import { In } from '@n8n/typeorm';
|
||||
import { DateTime } from 'luxon';
|
||||
import Container from 'typedi';
|
||||
|
||||
import config from '@/config';
|
||||
import { WorkflowHistoryRepository } from '@/databases/repositories/workflow-history.repository';
|
||||
import { License } from '@/license';
|
||||
import { WorkflowHistoryManager } from '@/workflows/workflow-history/workflow-history-manager.ee';
|
||||
|
||||
import { mockInstance } from '../shared/mocking';
|
||||
import * as testDb from './shared/test-db';
|
||||
import { createWorkflow } from './shared/db/workflows';
|
||||
import { createManyWorkflowHistoryItems } from './shared/db/workflow-history';
|
||||
import { createWorkflow } from './shared/db/workflows';
|
||||
import * as testDb from './shared/test-db';
|
||||
import { mockInstance } from '../shared/mocking';
|
||||
|
||||
describe('Workflow History Manager', () => {
|
||||
const license = mockInstance(License);
|
||||
|
||||
@@ -1,11 +1,11 @@
|
||||
import type { User } from '@/databases/entities/user';
|
||||
|
||||
import * as testDb from './shared/test-db';
|
||||
import * as utils from './shared/utils/';
|
||||
import { createOwner, createUser } from './shared/db/users';
|
||||
import { createWorkflow } from './shared/db/workflows';
|
||||
import { createWorkflowHistoryItem } from './shared/db/workflow-history';
|
||||
import { createWorkflow } from './shared/db/workflows';
|
||||
import * as testDb from './shared/test-db';
|
||||
import type { SuperAgentTest } from './shared/types';
|
||||
import * as utils from './shared/utils/';
|
||||
|
||||
let owner: User;
|
||||
let authOwnerAgent: SuperAgentTest;
|
||||
|
||||
@@ -1,9 +1,10 @@
|
||||
import Container from 'typedi';
|
||||
|
||||
import * as testDb from './shared/test-db';
|
||||
import { WorkflowTagMappingRepository } from '@/databases/repositories/workflow-tag-mapping.repository';
|
||||
import { createWorkflow } from './shared/db/workflows';
|
||||
import { TagRepository } from '@/databases/repositories/tag.repository';
|
||||
import { WorkflowTagMappingRepository } from '@/databases/repositories/workflow-tag-mapping.repository';
|
||||
|
||||
import { createWorkflow } from './shared/db/workflows';
|
||||
import * as testDb from './shared/test-db';
|
||||
|
||||
describe('WorkflowTagMappingRepository', () => {
|
||||
let taggingRepository: WorkflowTagMappingRepository;
|
||||
|
||||
@@ -1,14 +1,14 @@
|
||||
import Container from 'typedi';
|
||||
|
||||
import type { User } from '@/databases/entities/user';
|
||||
import { License } from '@/license';
|
||||
import { ProjectService } from '@/services/project.service';
|
||||
import { WorkflowSharingService } from '@/workflows/workflow-sharing.service';
|
||||
|
||||
import * as testDb from '../shared/test-db';
|
||||
import { createUser } from '../shared/db/users';
|
||||
import { createWorkflow, shareWorkflowWithUsers } from '../shared/db/workflows';
|
||||
import { ProjectService } from '@/services/project.service';
|
||||
import { LicenseMocker } from '../shared/license';
|
||||
import { License } from '@/license';
|
||||
import * as testDb from '../shared/test-db';
|
||||
|
||||
let owner: User;
|
||||
let member: User;
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
import Container from 'typedi';
|
||||
import { mock } from 'jest-mock-extended';
|
||||
import Container from 'typedi';
|
||||
|
||||
import { CredentialsEntity } from '@/databases/entities/credentials-entity';
|
||||
import { CredentialsRepository } from '@/databases/repositories/credentials.repository';
|
||||
import { SharedWorkflowRepository } from '@/databases/repositories/shared-workflow.repository';
|
||||
@@ -7,8 +8,8 @@ import { WorkflowRepository } from '@/databases/repositories/workflow.repository
|
||||
import { Telemetry } from '@/telemetry';
|
||||
import { EnterpriseWorkflowService } from '@/workflows/workflow.service.ee';
|
||||
|
||||
import * as testDb from '../shared/test-db';
|
||||
import { mockInstance } from '../../shared/mocking';
|
||||
import * as testDb from '../shared/test-db';
|
||||
import {
|
||||
FIRST_CREDENTIAL_ID,
|
||||
SECOND_CREDENTIAL_ID,
|
||||
|
||||
@@ -1,17 +1,18 @@
|
||||
import Container from 'typedi';
|
||||
import { mock } from 'jest-mock-extended';
|
||||
import Container from 'typedi';
|
||||
|
||||
import { ActiveWorkflowManager } from '@/active-workflow-manager';
|
||||
import { SharedWorkflowRepository } from '@/databases/repositories/shared-workflow.repository';
|
||||
import { WorkflowRepository } from '@/databases/repositories/workflow.repository';
|
||||
import { MessageEventBus } from '@/eventbus/message-event-bus/message-event-bus';
|
||||
import { Telemetry } from '@/telemetry';
|
||||
import { OrchestrationService } from '@/services/orchestration.service';
|
||||
import { Telemetry } from '@/telemetry';
|
||||
import { WorkflowService } from '@/workflows/workflow.service';
|
||||
|
||||
import * as testDb from '../shared/test-db';
|
||||
import { mockInstance } from '../../shared/mocking';
|
||||
import { createOwner } from '../shared/db/users';
|
||||
import { createWorkflow } from '../shared/db/workflows';
|
||||
import * as testDb from '../shared/test-db';
|
||||
|
||||
let workflowService: WorkflowService;
|
||||
const activeWorkflowManager = mockInstance(ActiveWorkflowManager);
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user