simoncck commited on
Commit
52d3f94
·
verified ·
1 Parent(s): 2ca135e

Create login.js

Browse files
Files changed (1) hide show
  1. login.js +39 -0
login.js ADDED
@@ -0,0 +1,39 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ // login.js — minimal, NO filesystem writes
2
+ import { chromium } from 'playwright';
3
+
4
+ export async function runLogin() {
5
+ let browser;
6
+ try {
7
+ browser = await chromium.launch({
8
+ args: ['--no-sandbox', '--ignore-certificate-errors'],
9
+ });
10
+
11
+ // new context (no cookie persistence)
12
+ const context = await browser.newContext({ ignoreHTTPSErrors: true });
13
+ const page = await context.newPage();
14
+ const baseUrl = process.env.N8N_URL;
15
+ await page.goto(baseUrl, { waitUntil: 'networkidle', timeout: 60000 });
16
+
17
+ /* ----- sign-in if form visible ----- */
18
+ const signIn = page.locator('[data-test-id="signin-form"]');
19
+ const needSignIn = await signIn.count() > 0;
20
+
21
+ if (needSignIn) {
22
+ await page
23
+ .locator('input[name="emailOrLdapLoginId"], input[name="email"]')
24
+ .first().fill(process.env.N8N_EMAIL || '');
25
+ await page.locator('input[name="password"]').first()
26
+ .fill(process.env.N8N_PASSWORD || '');
27
+ await page.getByRole('button', { name: /sign in/i }).click();
28
+ await page.locator('text=Overview').waitFor({ timeout: 60000 });
29
+ }
30
+
31
+ console.log('✅ Playwright finished; needSignIn =', needSignIn);
32
+ return { ok: true, loggedIn: needSignIn ? 'fresh' : 'already' };
33
+ } catch (err) {
34
+ console.error('runLogin error:', err);
35
+ return { ok: false, error: err.message };
36
+ } finally {
37
+ if (browser) await browser.close();
38
+ }
39
+ }