KAN-35 ticket changes
This commit is contained in:
@@ -342,6 +342,47 @@ try {
|
||||
.waitFor();
|
||||
await page.getByRole('button', { name: 'Create now', exact: true }).click();
|
||||
await dialog.waitFor({ state: 'hidden' });
|
||||
await visit('?slowBranch&serverError');
|
||||
await page
|
||||
.getByRole('button', { name: 'Create branch', exact: true })
|
||||
.click();
|
||||
await page
|
||||
.getByText('Branch name is available.', { exact: true })
|
||||
.waitFor();
|
||||
await page
|
||||
.getByLabel('Branch name', { exact: true })
|
||||
.fill('feature/ENG-42-preserve-this-name');
|
||||
await page
|
||||
.getByText('Branch name is available.', { exact: true })
|
||||
.waitFor();
|
||||
const failedBranchCreation = page.waitForResponse(
|
||||
(response) =>
|
||||
response.url().includes('/tickets/42/branches') &&
|
||||
response.request().method() === 'POST',
|
||||
);
|
||||
await page.getByRole('button', { name: 'Create now', exact: true }).click();
|
||||
await page.getByText('Creating branch…', { exact: true }).waitFor();
|
||||
assert.equal(
|
||||
await page
|
||||
.locator('button[type="submit"]')
|
||||
.last()
|
||||
.getAttribute('aria-busy'),
|
||||
'true',
|
||||
);
|
||||
assert.equal((await failedBranchCreation).status(), 503);
|
||||
await page
|
||||
.getByText('The request could not be completed', { exact: true })
|
||||
.waitFor();
|
||||
assert.equal(
|
||||
await page.getByLabel('Branch name', { exact: true }).inputValue(),
|
||||
'feature/ENG-42-preserve-this-name',
|
||||
);
|
||||
assert.equal(await page.getByRole('dialog').isVisible(), true);
|
||||
await page.getByLabel('Branch name', { exact: true }).fill('eng-42-cache');
|
||||
await page
|
||||
.getByText('Branch name is available.', { exact: true })
|
||||
.waitFor();
|
||||
await page.keyboard.press('Escape');
|
||||
const linkSaved = page.waitForResponse(
|
||||
(response) =>
|
||||
response.url().includes('/tickets/42/links') &&
|
||||
|
||||
@@ -42,6 +42,7 @@ const repository = {
|
||||
provider_label: 'Gitea',
|
||||
base_url: 'https://git.example.test',
|
||||
repository_full_name: 'Engineering/platform',
|
||||
repository_url: 'https://git.example.test/Engineering/platform',
|
||||
has_personal_access: true,
|
||||
};
|
||||
const parent = {
|
||||
@@ -354,6 +355,9 @@ if (serve) {
|
||||
const data = body ? JSON.parse(body) : {};
|
||||
const previous = new URL(request.headers.referer);
|
||||
const params = previous.searchParams;
|
||||
if (request.url.includes('/branches') && params.has('slowBranch')) {
|
||||
await new Promise((resolve) => setTimeout(resolve, 300));
|
||||
}
|
||||
if (params.has('serverError')) {
|
||||
response.writeHead(503);
|
||||
response.end('Simulated failure');
|
||||
@@ -550,6 +554,14 @@ if (serve) {
|
||||
assert.match(html, /aria-label="Criterion 1"/);
|
||||
assert.match(html, /Add criterion/);
|
||||
assert.match(html, /Create branch/);
|
||||
assert.match(
|
||||
html,
|
||||
/<a(?=[^>]*href="https:\/\/git\.example\.test\/Engineering\/platform")(?=[^>]*target="_blank")(?=[^>]*rel="noopener noreferrer")[^>]*>/,
|
||||
);
|
||||
assert.match(
|
||||
html,
|
||||
/<a(?=[^>]*href="https:\/\/git\.example\.test\/Engineering\/platform\/pulls\/12")(?=[^>]*target="_blank")(?=[^>]*rel="noopener noreferrer")[^>]*>/,
|
||||
);
|
||||
assert.match(html, /Save link/);
|
||||
assert.match(html, /Outgoing/);
|
||||
const incoming = await render('?incoming');
|
||||
@@ -579,8 +591,7 @@ if (serve) {
|
||||
'Unassigned',
|
||||
'No author',
|
||||
'Not set',
|
||||
'No matching branches',
|
||||
'No matching pull requests',
|
||||
'No linked repositories',
|
||||
'No worklog entries exist',
|
||||
]) {
|
||||
assert.ok(empty.includes(text), `Missing empty state: ${text}`);
|
||||
@@ -590,11 +601,13 @@ if (serve) {
|
||||
assert.match(hierarchy, /Platform delivery/);
|
||||
assert.match(hierarchy, /Nested child/);
|
||||
assert.match(hierarchy, /Change parent/);
|
||||
assert.match(await render('?noAccess'), /Open Git connections/);
|
||||
assert.match(
|
||||
await render('?gitError'),
|
||||
/Repository temporarily unavailable/,
|
||||
);
|
||||
const noAccess = await render('?noAccess');
|
||||
assert.match(noAccess, /Personal Git access required/);
|
||||
assert.match(noAccess, /Open Git connections/);
|
||||
const gitError = await render('?gitError');
|
||||
assert.match(gitError, /Branches unavailable/);
|
||||
assert.match(gitError, /Pull requests unavailable/);
|
||||
assert.match(gitError, /Repository temporarily unavailable/);
|
||||
const create = await render('?source=board', true);
|
||||
assert.match(create, /Create ticket/);
|
||||
assert.match(create, /Delivery \/ In progress/);
|
||||
|
||||
Reference in New Issue
Block a user