n8n/packages/testing/playwright/tests/e2e/cloud/cloud.spec.ts
Declan Carroll 66087e2dd5
chore: Apply biome formatting to playwright package (no-changelog) (#26586)
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-05 10:47:20 +00:00

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();
});
});
},
);