| 77 | 77 | | assert.equal(autonomyOfLevel("merge", "never"), "never"); |
| 78 | 78 | | assert.equal(G1T_ABILITIES.filter((d) => d.autonomy).length, 4); |
| 79 | 79 | | const computer = sections.find((s) => s.group === "computer")!; |
| 80 | | − | assert.ok(computer.sources[0]!.abilities.every((a) => a.status === "coming" && a.choices.length === 0 && !a.can_change)); |
| 80 | + | const shell = computer.sources[0]!.abilities.find((a) => a.id === "computer:shell")!; |
| 81 | + | assert.equal(shell.status, "ready"); |
| 82 | + | assert.equal(shell.level, "asked", "commands run when asked for, until the person says otherwise"); |
| 83 | + | assert.deepEqual(shell.choices, ["alone", "asked", "ask", "never"]); |
| 84 | + | const files = computer.sources[0]!.abilities.find((a) => a.id === "computer:files")!; |
| 85 | + | assert.equal(files.level, "alone"); |
| 86 | + | assert.ok(files.can_change); |
| 87 | + | const coming = computer.sources[0]!.abilities.filter((a) => a.id === "computer:browser" || a.id === "computer:web"); |
| 88 | + | assert.equal(coming.length, 2); |
| 89 | + | assert.ok(coming.every((a) => a.status === "coming" && a.choices.length === 0 && !a.can_change), "the browser and web search are still coming"); |
| 81 | 90 | | assert.equal(COMPUTER_ABILITIES.length, 4); |
| 82 | 91 | | }); |
| 83 | 92 | | |
| ⋯ |
| 181 | 190 | | const summary = abilitiesSummary(sections); |
| 182 | 191 | | assert.equal( |
| 183 | 192 | | summary, |
| 184 | | − | "Can open pull requests, read issues in Linear, read issues in Sentry and resolve issues in Sentry on its own; imports issues in Linear and imports issues in Sentry when asked for it; asks before merging, deploying to production, editing docs and commenting in Sentry; never comments in Linear.", |
| 193 | + | "Can open pull requests, change files on its computer, read issues in Linear, read issues in Sentry and resolve issues in Sentry on its own; runs commands on its computer, imports issues in Linear and imports issues in Sentry when asked for it; asks before merging, deploying to production, editing docs and commenting in Sentry; never comments in Linear.", |
| 185 | 194 | | ); |
| 186 | 195 | | assert.equal(allAbilities(sections).filter((a) => a.group === "integration" && a.can_change).length, 7); |
| 187 | | − | assert.match(abilitiesSummary(resolve()), /open pull requests on its own/); |
| 196 | + | assert.match(abilitiesSummary(resolve()), /open pull requests and change files on its computer on its own/); |
| 188 | 197 | | }); |