import json
import os
from pathlib import Path
import subprocess
ROOT = Path(__file__).resolve().parents[1]
def test_action_names_and_unknown_steps_are_literal_text():
script = r'''
const fs = require('fs');
const { chromium } = require('playwright');
(async () => {
const browser = await chromium.launch({ headless: true });
try {
const page = await browser.newPage();
await page.route('http://actions.test/**', route => route.fulfill({
status: 200, contentType: 'text/html', body: '
',
}));
await page.goto('http://actions.test/');
const source = fs.readFileSync(process.argv[1], 'utf8');
const moduleUrl = 'data:text/javascript;base64,' + Buffer.from(source).toString('base64');
const result = await page.evaluate(async url => {
const attack = '
';
localStorage.setItem('ge-actions', JSON.stringify({ [attack]: ['flip-h'] }));
const { createActionsPanel } = await import(url);
const panel = createActionsPanel();
document.body.append(panel.element);
panel.setSteps([attack]);
const input = panel.element.querySelector('.ge-actions-name');
input.value = attack + '