mirror of
https://github.com/n8n-io/n8n.git
synced 2026-05-24 05:15:16 +02:00
98 lines
2.5 KiB
TypeScript
98 lines
2.5 KiB
TypeScript
import { test, expect } from '../../../fixtures/base';
|
|
import basePlanData from '../../../fixtures/plan-data-trial.json';
|
|
import type { n8nPage } from '../../../pages/n8nPage';
|
|
import type { TestRequirements } from '../../../Types';
|
|
|
|
test.use({ capability: { env: { TEST_ISOLATION: 'cloud' } } });
|
|
|
|
const fiveDaysFromNow = new Date(Date.now() + 5 * 24 * 60 * 60 * 1000);
|
|
const planData = { ...basePlanData, expirationDate: fiveDaysFromNow.toJSON() };
|
|
|
|
const cloudTrialRequirements: TestRequirements = {
|
|
config: {
|
|
settings: {
|
|
publicApi: {
|
|
enabled: false,
|
|
latestVersion: 1,
|
|
path: 'api',
|
|
swaggerUi: { enabled: false },
|
|
},
|
|
deployment: { type: 'cloud' },
|
|
n8nMetadata: { userId: '1' },
|
|
|
|
aiCredits: {
|
|
enabled: true,
|
|
credits: 100,
|
|
setup: true,
|
|
},
|
|
banners: {
|
|
dismissed: ['V1'], // Prevent V1 banner interference
|
|
},
|
|
},
|
|
},
|
|
intercepts: {
|
|
'cloud-plan': {
|
|
url: '**/rest/admin/cloud-plan',
|
|
response: planData,
|
|
},
|
|
'cloud-user': {
|
|
url: '**/rest/cloud/proxy/user/me',
|
|
response: {},
|
|
},
|
|
},
|
|
};
|
|
|
|
const setupCloudTest = async (
|
|
n8n: n8nPage,
|
|
setupRequirements: (requirements: TestRequirements) => Promise<void>,
|
|
requirements: TestRequirements,
|
|
) => {
|
|
await setupRequirements(requirements);
|
|
await n8n.page.waitForLoadState();
|
|
};
|
|
|
|
test.describe(
|
|
'Cloud @db:reset @auth:owner',
|
|
{
|
|
annotation: [{ type: 'owner', description: 'Cloud Platform' }],
|
|
},
|
|
() => {
|
|
test.describe('Trial Upgrade', () => {
|
|
test('should render trial banner for opt-in cloud user', async ({
|
|
n8n,
|
|
setupRequirements,
|
|
}) => {
|
|
await setupCloudTest(n8n, setupRequirements, cloudTrialRequirements);
|
|
await n8n.start.fromBlankCanvas();
|
|
await n8n.sideBar.expand();
|
|
|
|
await expect(n8n.sideBar.getTrialBanner()).toBeVisible();
|
|
});
|
|
});
|
|
|
|
test.describe('Admin Home', () => {
|
|
test('should show admin button', async ({ n8n, setupRequirements }) => {
|
|
await setupCloudTest(n8n, setupRequirements, cloudTrialRequirements);
|
|
await n8n.start.fromBlankCanvas();
|
|
await n8n.sideBar.expand();
|
|
|
|
await expect(n8n.sideBar.getAdminPanel()).toBeVisible();
|
|
});
|
|
});
|
|
|
|
test.describe('Public API', () => {
|
|
test('should show upgrade CTA for Public API if user is trialing', async ({
|
|
n8n,
|
|
setupRequirements,
|
|
}) => {
|
|
await setupCloudTest(n8n, setupRequirements, cloudTrialRequirements);
|
|
await n8n.navigate.toApiSettings();
|
|
|
|
await n8n.page.waitForLoadState();
|
|
|
|
await expect(n8n.settingsPersonal.getUpgradeCta()).toBeVisible();
|
|
});
|
|
});
|
|
},
|
|
);
|