fix: ConfigTemplate infinite re-render loop and add E2E test
This commit is contained in:
@@ -105,4 +105,55 @@ test.describe('Environment Management', () => {
|
||||
await page.waitForTimeout(200);
|
||||
await expect(page.locator('#environments')).toBeVisible();
|
||||
});
|
||||
|
||||
test('should add params and edit template manually', async ({ page }) => {
|
||||
await page.goto('/');
|
||||
await page.click('button:has-text("Create new")');
|
||||
|
||||
// Step 1: Add a param to DEFAULT
|
||||
const nameInput = page.locator('input[placeholder="name"]').first();
|
||||
const valueInput = page.locator('input[placeholder="value"]').first();
|
||||
const addButton = page.locator('button.btn-success').first();
|
||||
|
||||
await nameInput.fill('host');
|
||||
await valueInput.fill('localhost:8080');
|
||||
await addButton.click();
|
||||
await page.waitForTimeout(500);
|
||||
|
||||
// Add second param
|
||||
await nameInput.fill('port');
|
||||
await valueInput.fill('9090');
|
||||
await addButton.click();
|
||||
await page.waitForTimeout(500);
|
||||
|
||||
// Step 2: Switch to Content Template tab
|
||||
await page.click('a:has-text("Content Template")');
|
||||
await page.waitForTimeout(500);
|
||||
|
||||
// Verify the tab content is visible (check for Edit button)
|
||||
await expect(page.locator('button:has-text("Edit")')).toBeVisible();
|
||||
|
||||
// Step 3: Click Edit button
|
||||
await page.click('button:has-text("Edit")');
|
||||
await page.waitForTimeout(500);
|
||||
|
||||
// Step 4: Verify textarea is visible
|
||||
const textarea = page.locator('textarea');
|
||||
await expect(textarea).toBeVisible();
|
||||
|
||||
// Step 5: Edit the template manually - add a new key
|
||||
await textarea.fill('{\n "!!! host": "@host@",\n "!!! port": "@port@",\n "!!! custom": "@custom@"\n}');
|
||||
await page.waitForTimeout(300);
|
||||
|
||||
// Step 6: Click Save
|
||||
await page.click('button:has-text("Save")');
|
||||
await page.waitForTimeout(500);
|
||||
|
||||
// Step 7: Verify the template was saved (Edit button should be visible again)
|
||||
await expect(page.locator('button:has-text("Edit")')).toBeVisible();
|
||||
|
||||
// Verify the content contains the new key
|
||||
const pageContent = await page.content();
|
||||
expect(pageContent).toContain('!!! custom');
|
||||
});
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user