| 137 | // but tag every entry as `pending` since nothing is written. Names and |
| 138 | // versions are derived exactly like the text listing above. |
| 139 | pendingSummary (unreviewed) { |
| 140 | const groups = new Map() |
| 141 | for (const { node } of unreviewed) { |
| 142 | const { name, version } = trustedDisplay(node) |
| 143 | /* istanbul ignore next: every test node has a name */ |
| 144 | const display = name || '<unknown>' |
| 145 | const key = version ? `${display}@${version}` : display |
| 146 | if (!groups.has(display)) { |
| 147 | groups.set(display, []) |
| 148 | } |
| 149 | groups.get(display).push({ key, change: 'pending' }) |
| 150 | } |
| 151 | return [...groups].map(([name, changes]) => ({ name, changes })) |
| 152 | } |
| 153 | |
| 154 | async runAll (unreviewed) { |
| 155 | if (unreviewed.length === 0) { |