summaryrefslogtreecommitdiff
path: root/source/github-helpers/pr-ci-status.ts
diff options
context:
space:
mode:
Diffstat (limited to 'source/github-helpers/pr-ci-status.ts')
-rw-r--r--source/github-helpers/pr-ci-status.ts13
1 files changed, 5 insertions, 8 deletions
diff --git a/source/github-helpers/pr-ci-status.ts b/source/github-helpers/pr-ci-status.ts
index 09401bf7..e1a5cadc 100644
--- a/source/github-helpers/pr-ci-status.ts
+++ b/source/github-helpers/pr-ci-status.ts
@@ -1,24 +1,21 @@
import select from 'select-dom';
import api from './api.js';
+import {prCommit, prCommitStatusIcon} from './selectors.js';
export const SUCCESS = Symbol('Success');
export const FAILURE = Symbol('Failure');
export const PENDING = Symbol('Pending');
export type CommitStatus = false | typeof SUCCESS | typeof FAILURE | typeof PENDING;
-export const commitSelector = '[data-test-selector="pr-timeline-commits-list"] .TimelineItem';
-
-// `summary` is needed because the details dropdown contains the list of check runs, each with its status icon
-export const commitStatusIconSelector = 'details.commit-build-statuses summary .octicon';
-
export function getLastCommitReference(): string | undefined {
- return select.last(`${commitSelector} code`)!.textContent ?? undefined;
+ return select.last(`${prCommit} code`)!.textContent ?? undefined;
}
export function getLastCommitStatus(): CommitStatus {
- const lastCommit = select.last(commitSelector)!;
- const lastCommitStatusIcon = lastCommit.querySelector(commitStatusIconSelector);
+ // Select the last commit first, THEN pick the icon, otherwise it might pick non-last commit while the CI is starting up
+ const lastCommit = select.last(prCommit)!;
+ const lastCommitStatusIcon = select(prCommitStatusIcon, lastCommit);
// Some commits don't have a CI status icon at all
if (lastCommitStatusIcon) {