surshar / claude-code
Claude Code is an agentic coding tool that lives in your terminal, understands your codebase, and helps you code faster by executing routine tasks, explaining complex code, and handling git workflows - all through natural language commands.
Built by Anthropic · github.com/anthropics
| @@ -1217,6 +1217,50 @@ | ||
| 1217 | 1217 | ).toEqual(['diff']) |
| 1218 | 1218 | }) |
| 1219 | 1219 | |
| 1220 | + test('a resumed session whose edits the diff no longer lists opens nothing, the next edit it lists does', async ($, on) => { | |
| 1221 | + const script: Record<string, string> = { | |
| 1222 | + ...Fixtures.REPOSITORY, | |
| 1223 | + 'HEAD --shortstat': '', | |
| 1224 | + 'HEAD --numstat': '', | |
| 1225 | + } | |
| 1226 | + | |
| 1227 | + const world = Fixtures.inRepository(on, script, { | |
| 1228 | + messages: () => Fixtures.EDITED_TRANSCRIPT, | |
| 1229 | + }) | |
| 1230 | + | |
| 1231 | + on('tool.call', () => ({ result: 'edited' })) | |
| 1232 | + | |
| 1233 | + await $.session.start(Fixtures.SESSION) | |
| 1234 | + await $.ui.render(Fixtures.HINT) | |
| 1235 | + await world.clock.advance(Fixtures.SETTLE_MS) | |
| 1236 | + | |
| 1237 | + expect( | |
| 1238 | + world.opened, | |
| 1239 | + 'committed since: it would say "No changes this session"', | |
| 1240 | + ).toEqual([]) | |
| 1241 | + | |
| 1242 | + Object.assign(script, Fixtures.REPOSITORY) | |
| 1243 | + | |
| 1244 | + await $.tool.call({ | |
| 1245 | + tool: 'Edit', | |
| 1246 | + file_path: '/work/app.ts', | |
| 1247 | + old_string: '1', | |
| 1248 | + new_string: '2', | |
| 1249 | + }) | |
| 1250 | + | |
| 1251 | + await world.clock.advance(Fixtures.SETTLE_MS) | |
| 1252 | + | |
| 1253 | + expect( | |
| 1254 | + world.opened.map(pane => pane.id), | |
| 1255 | + 'the restore left the opening to the first edit with a row to list', | |
| 1256 | + ).toEqual(['diff']) | |
| 1257 | + | |
| 1258 | + expect( | |
| 1259 | + Fixtures.textOf(await $.ui.render(Fixtures.PANE)), | |
| 1260 | + 'listed as it opened', | |
| 1261 | + ).toContain('1 file changed') | |
| 1262 | + }) | |
| 1263 | + | |
| 1220 | 1264 | test('a resumed session opens nothing where its first edit would not', async ($, on) => { |
| 1221 | 1265 | const narrow = Fixtures.inRepository(on, Fixtures.REPOSITORY, { |
| 1222 | 1266 | messages: () => Fixtures.EDITED_TRANSCRIPT, |