diff options
Diffstat (limited to 'source/github-helpers/pr-ci-status.ts')
-rw-r--r-- | source/github-helpers/pr-ci-status.ts | 13 |
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) { |