Skip to content

Commit 2c32b41

Browse files
authored
Merge pull request #7135 from okurz/feature/improve_t_ui_01_list
refactor(tests): consolidate page loads in 01-list.t
2 parents b00f829 + 30cb76c commit 2c32b41

1 file changed

Lines changed: 36 additions & 55 deletions

File tree

t/ui/01-list.t

Lines changed: 36 additions & 55 deletions
Original file line numberDiff line numberDiff line change
@@ -55,9 +55,9 @@ my @job_params = (
5555
sub prepare_database {
5656
my $bugs = $schema->resultset('Bugs');
5757
my %bug_args = (refreshed => 1, existing => 1);
58-
my $bug1 = $bugs->create({bugid => 'poo#1', title => 'open poo bug', open => 1, %bug_args});
59-
my $bug2 = $bugs->create({bugid => 'poo#2', title => 'closed poo bug', open => 0, %bug_args});
60-
my $bug4 = $bugs->create({bugid => 'bsc#4', title => 'closed bugzilla bug', open => 0, %bug_args});
58+
$bugs->create({bugid => 'poo#1', title => 'open poo bug', open => 1, %bug_args});
59+
$bugs->create({bugid => 'poo#2', title => 'closed poo bug', open => 0, %bug_args});
60+
$bugs->create({bugid => 'bsc#4', title => 'closed bugzilla bug', open => 0, %bug_args});
6161

6262
my $jobs = $schema->resultset('Jobs');
6363
$jobs->find(99981)->delete;
@@ -164,6 +164,32 @@ subtest 'running jobs, progress bars' => sub {
164164
$time->text_like(qr/\d+ minutes ago/, 'right time for running');
165165
};
166166

167+
subtest 'comments and bugrefs displayed for finished jobs' => sub {
168+
is $driver->find_element('#job_99946 .fa-comment')->get_attribute('title'),
169+
'2 comments available', 'available comments shown for finished jobs';
170+
is @{$driver->find_elements('#job_99962 .fa-comment')},
171+
0, 'available comments only shown if at least one comment available';
172+
is $driver->find_element('#job_99936 .fa-bolt')->get_attribute('title'),
173+
"Bug referenced: poo#1\nopen poo bug", 'available bugref (poo#1) shown for finished jobs';
174+
is $driver->find_element('#job_99936 .fa-bug')->get_attribute('title'),
175+
'Bug referenced: bsc#3', 'available bugref (bsc#3) shown for finished jobs';
176+
my @closed = $driver->find_elements('#job_99936 .bug_closed');
177+
is $closed[1]->get_attribute('title'),
178+
"Bug referenced: poo#2\nclosed poo bug", 'available bugref (poo#2) shown for finished jobs';
179+
is $closed[0]->get_attribute('title'),
180+
"Bug referenced: bsc#4\nclosed bugzilla bug", 'available bugref (bsc#4) shown for finished jobs';
181+
is_deeply [$driver->find_elements('#job_99963 .fa-comment')],
182+
[], 'available comments not shown for running jobs (for performance reasons)';
183+
is_deeply [$driver->find_elements('#job_99928 .fa-comment')],
184+
[], 'available comments not shown for scheduled jobs (for performance reasons)';
185+
};
186+
187+
subtest 'priority displayed when not logged in' => sub {
188+
is $driver->find_element('#job_99928 td + td + td')->get_text(), '46', 'priority displayed';
189+
my @prio_links = $driver->find_elements('#job_99928 td + td + td a');
190+
is_deeply \@prio_links, [], 'no links to increase/decrease prio';
191+
};
192+
167193
my @header = $driver->find_elements('h2');
168194
my @header_texts = map { OpenQA::Test::Case::trim_whitespace($_->get_text()) } @header;
169195
my @expected = ('3 jobs are running (limited by server config)', '3 scheduled jobs', 'Last 11 finished jobs');
@@ -233,37 +259,6 @@ subtest 'scheduled jobs server-side limit has precedence over user-specified lim
233259
$schema->txn_rollback;
234260
};
235261

236-
subtest 'available comments shown' => sub {
237-
$driver->get('/tests');
238-
wait_for_ajax(msg => 'DataTables on "All tests" page for comments');
239-
240-
is
241-
$driver->find_element('#job_99946 .fa-comment')->get_attribute('title'),
242-
'2 comments available',
243-
'available comments shown for finished jobs';
244-
is @{$driver->find_elements('#job_99962 .fa-comment')},
245-
0, 'available comments only shown if at least one comment available';
246-
is
247-
$driver->find_element('#job_99936 .fa-bolt')->get_attribute('title'),
248-
"Bug referenced: poo#1\nopen poo bug",
249-
'available bugref (poo#1) shown for finished jobs';
250-
is
251-
$driver->find_element('#job_99936 .fa-bug')->get_attribute('title'),
252-
'Bug referenced: bsc#3',
253-
'available bugref (bsc#3) shown for finished jobs';
254-
my @closed = $driver->find_elements('#job_99936 .bug_closed');
255-
is $closed[1]->get_attribute('title'),
256-
"Bug referenced: poo#2\nclosed poo bug",
257-
'available bugref (poo#2) shown for finished jobs';
258-
is $closed[0]->get_attribute('title'),
259-
"Bug referenced: bsc#4\nclosed bugzilla bug",
260-
'available bugref (bsc#4) shown for finished jobs';
261-
is_deeply [$driver->find_elements('#job_99963 .fa-comment')],
262-
[], 'available comments not shown for running jobs (for performance reasons)';
263-
is_deeply [$driver->find_elements('#job_99928 .fa-comment')],
264-
[], 'available comments not shown for scheduled jobs (for performance reasons)';
265-
};
266-
267262
$driver->find_element_by_link_text('Build0091')->click();
268263
like
269264
$driver->find_element_by_id('summary')->get_text(),
@@ -305,15 +300,8 @@ is @links, 3, 'only three links (icon, name and comments but no restart)';
305300
# Test 99926 is displayed
306301
is $driver->find_element('#results #job_99926 .test .status.result_incomplete')->get_text(), '', '99926 incomplete';
307302

308-
subtest 'priority of scheduled jobs' => sub {
309-
# displayed when not logged in
310-
is $driver->find_element('#job_99928 td + td + td')->get_text(), '46', 'priority displayed';
311-
my @prio_links = $driver->find_elements('#job_99928 td + td + td a');
312-
is_deeply \@prio_links, [], 'no links to increase/decrease prio';
313-
314-
# displayed and adjustable when logged in as admin
303+
subtest 'priority adjustment when logged in' => sub {
315304
$driver->find_element_by_link_text('Login')->click();
316-
$driver->get('/tests');
317305
wait_for_ajax;
318306
is $driver->find_element('#job_99928 .prio-value')->get_text(), '46', 'priority displayed';
319307
$driver->find_element('#job_99928 .prio-down')->click();
@@ -447,10 +435,10 @@ subtest 'result filter does not affect scheduled and running jobs' => sub {
447435
subtest 'match parameter' => sub {
448436
$driver->get('/tests?match=staging_e');
449437
wait_for_ajax msg => '"All tests" with match parameter';
450-
@jobs = map { $_->get_attribute('id') } @{$driver->find_elements('tbody tr', 'css')};
451-
ok !$jobs[0], 'no running job matching';
452-
ok !$jobs[1], 'no scheduled job matching';
453-
is $jobs[2], 'job_99926', 'exactly one finished job matching';
438+
my @match_jobs = map { $_->get_attribute('id') } @{$driver->find_elements('tbody tr', 'css')};
439+
ok !$match_jobs[0], 'no running job matching';
440+
ok !$match_jobs[1], 'no scheduled job matching';
441+
is $match_jobs[2], 'job_99926', 'exactly one finished job matching';
454442
};
455443

456444
subtest 'comment parameter' => sub {
@@ -468,9 +456,7 @@ is scalar @cancel_links, 0, 'no cancel link when not logged in';
468456

469457
# now login to test restart links
470458
$driver->find_element_by_link_text('Login')->click();
471-
is $driver->get('/tests'), 1, 'back on /tests';
472459
wait_for_ajax();
473-
474460
@cancel_links = $driver->find_elements('#job_99928 a.cancel');
475461
is scalar @cancel_links, 1, 'cancel link displayed when logged in';
476462

@@ -484,7 +470,7 @@ $driver->title_is('openQA: Test results', 'restart stays on page');
484470
$td = $driver->find_element('#job_99946 td.test');
485471
is $td->get_text(), 'textmode@32bit (restarted)', 'restart removes link';
486472

487-
subtest 'check test results of job99940' => sub {
473+
subtest 'job 99940 module results and job 99991 description' => sub {
488474
$driver->get('/tests');
489475
wait_for_ajax;
490476
my $results = $driver->find_elements('#job_99940 > td')->[2];
@@ -495,18 +481,13 @@ subtest 'check test results of job99940' => sub {
495481
for my $class (qw(module_passed module_failed module_softfailed module_none module_skipped)) {
496482
is scalar(@{$driver->find_child_elements($results, 'i.' . $class)}), 1, "$class displayed";
497483
}
498-
};
499484

500-
subtest 'test name and description still show up correctly using JOB_TEMPLATE_NAME' => sub {
501-
$driver->get('/tests');
502-
wait_for_ajax(msg => 'wait for all tests displayed before looking for 99991');
503485
is $driver->find_element('#job_99991 td.test')->get_text(),
504486
'kde_variant@64bit', 'job 99991 displays TEST correctly';
505487

506488
$driver->get('/tests/99991#settings');
507489
wait_for_ajax;
508-
is
509-
$driver->find_element('#scenario-description')->get_text(),
490+
is $driver->find_element('#scenario-description')->get_text(),
510491
'Simple kde test, before advanced_kde',
511492
'job 99991 description displays correctly';
512493
};

0 commit comments

Comments
 (0)