mirror of
https://github.com/Abdulazizzn/n8n-enterprise-unlocked.git
synced 2025-12-17 18:12:04 +00:00
test(core): Skip SMTP tests if service unavailable (#3293)
This commit is contained in:
@@ -21,6 +21,7 @@ let app: express.Application;
|
|||||||
let testDbName = '';
|
let testDbName = '';
|
||||||
let globalOwnerRole: Role;
|
let globalOwnerRole: Role;
|
||||||
let globalMemberRole: Role;
|
let globalMemberRole: Role;
|
||||||
|
let isSmtpAvailable = false;
|
||||||
|
|
||||||
beforeAll(async () => {
|
beforeAll(async () => {
|
||||||
app = utils.initTestServer({ endpointGroups: ['passwordReset'], applyAuth: true });
|
app = utils.initTestServer({ endpointGroups: ['passwordReset'], applyAuth: true });
|
||||||
@@ -32,6 +33,8 @@ beforeAll(async () => {
|
|||||||
|
|
||||||
utils.initTestTelemetry();
|
utils.initTestTelemetry();
|
||||||
utils.initTestLogger();
|
utils.initTestLogger();
|
||||||
|
|
||||||
|
isSmtpAvailable = await utils.isTestSmtpServiceAvailable();
|
||||||
});
|
});
|
||||||
|
|
||||||
beforeEach(async () => {
|
beforeEach(async () => {
|
||||||
@@ -50,6 +53,8 @@ afterAll(async () => {
|
|||||||
test(
|
test(
|
||||||
'POST /forgot-password should send password reset email',
|
'POST /forgot-password should send password reset email',
|
||||||
async () => {
|
async () => {
|
||||||
|
if (!isSmtpAvailable) utils.skipSmtpTest(expect);
|
||||||
|
|
||||||
const owner = await testDb.createUser({ globalRole: globalOwnerRole });
|
const owner = await testDb.createUser({ globalRole: globalOwnerRole });
|
||||||
|
|
||||||
const authlessAgent = utils.createAgent(app);
|
const authlessAgent = utils.createAgent(app);
|
||||||
|
|||||||
@@ -26,6 +26,7 @@ import { credentialsController } from '../../../src/api/credentials.api';
|
|||||||
import type { User } from '../../../src/databases/entities/User';
|
import type { User } from '../../../src/databases/entities/User';
|
||||||
import type { EndpointGroup, SmtpTestAccount } from './types';
|
import type { EndpointGroup, SmtpTestAccount } from './types';
|
||||||
import type { N8nApp } from '../../../src/UserManagement/Interfaces';
|
import type { N8nApp } from '../../../src/UserManagement/Interfaces';
|
||||||
|
import * as UserManagementMailer from '../../../src/UserManagement/email/UserManagementMailer';
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Initialize a test server.
|
* Initialize a test server.
|
||||||
@@ -229,6 +230,21 @@ export async function configureSmtp() {
|
|||||||
config.set('userManagement.emails.smtp.auth.pass', pass);
|
config.set('userManagement.emails.smtp.auth.pass', pass);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
export async function isTestSmtpServiceAvailable() {
|
||||||
|
try {
|
||||||
|
await configureSmtp();
|
||||||
|
await UserManagementMailer.getInstance();
|
||||||
|
return true;
|
||||||
|
} catch (_) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
export function skipSmtpTest(expect: jest.Expect) {
|
||||||
|
console.warn(`SMTP service unavailable - Skipping test ${expect.getState().currentTestName}`);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
// ----------------------------------
|
// ----------------------------------
|
||||||
// misc
|
// misc
|
||||||
// ----------------------------------
|
// ----------------------------------
|
||||||
|
|||||||
@@ -27,6 +27,7 @@ let globalMemberRole: Role;
|
|||||||
let globalOwnerRole: Role;
|
let globalOwnerRole: Role;
|
||||||
let workflowOwnerRole: Role;
|
let workflowOwnerRole: Role;
|
||||||
let credentialOwnerRole: Role;
|
let credentialOwnerRole: Role;
|
||||||
|
let isSmtpAvailable = false;
|
||||||
|
|
||||||
beforeAll(async () => {
|
beforeAll(async () => {
|
||||||
app = utils.initTestServer({ endpointGroups: ['users'], applyAuth: true });
|
app = utils.initTestServer({ endpointGroups: ['users'], applyAuth: true });
|
||||||
@@ -47,6 +48,8 @@ beforeAll(async () => {
|
|||||||
|
|
||||||
utils.initTestTelemetry();
|
utils.initTestTelemetry();
|
||||||
utils.initTestLogger();
|
utils.initTestLogger();
|
||||||
|
|
||||||
|
isSmtpAvailable = await utils.isTestSmtpServiceAvailable();
|
||||||
});
|
});
|
||||||
|
|
||||||
beforeEach(async () => {
|
beforeEach(async () => {
|
||||||
@@ -482,6 +485,8 @@ test('POST /users should fail if user management is disabled', async () => {
|
|||||||
test(
|
test(
|
||||||
'POST /users should email invites and create user shells but ignore existing',
|
'POST /users should email invites and create user shells but ignore existing',
|
||||||
async () => {
|
async () => {
|
||||||
|
if (!isSmtpAvailable) utils.skipSmtpTest(expect);
|
||||||
|
|
||||||
const owner = await testDb.createUser({ globalRole: globalOwnerRole });
|
const owner = await testDb.createUser({ globalRole: globalOwnerRole });
|
||||||
const member = await testDb.createUser({ globalRole: globalMemberRole });
|
const member = await testDb.createUser({ globalRole: globalMemberRole });
|
||||||
const memberShell = await testDb.createUserShell(globalMemberRole);
|
const memberShell = await testDb.createUserShell(globalMemberRole);
|
||||||
@@ -534,6 +539,8 @@ test(
|
|||||||
test(
|
test(
|
||||||
'POST /users should fail with invalid inputs',
|
'POST /users should fail with invalid inputs',
|
||||||
async () => {
|
async () => {
|
||||||
|
if (!isSmtpAvailable) utils.skipSmtpTest(expect);
|
||||||
|
|
||||||
const owner = await testDb.createUser({ globalRole: globalOwnerRole });
|
const owner = await testDb.createUser({ globalRole: globalOwnerRole });
|
||||||
const authOwnerAgent = utils.createAgent(app, { auth: true, user: owner });
|
const authOwnerAgent = utils.createAgent(app, { auth: true, user: owner });
|
||||||
|
|
||||||
@@ -563,6 +570,8 @@ test(
|
|||||||
test(
|
test(
|
||||||
'POST /users should ignore an empty payload',
|
'POST /users should ignore an empty payload',
|
||||||
async () => {
|
async () => {
|
||||||
|
if (!isSmtpAvailable) utils.skipSmtpTest(expect);
|
||||||
|
|
||||||
const owner = await testDb.createUser({ globalRole: globalOwnerRole });
|
const owner = await testDb.createUser({ globalRole: globalOwnerRole });
|
||||||
const authOwnerAgent = utils.createAgent(app, { auth: true, user: owner });
|
const authOwnerAgent = utils.createAgent(app, { auth: true, user: owner });
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user