| ... | @@ -1458,17 +1458,18 @@ describe("composerDraftStore project draft thread mapping", () => { | ... | @@ -1458,17 +1458,18 @@ describe("composerDraftStore project draft thread mapping", () => { |
| 1458 | expect(draftFor(threadId, TEST_ENVIRONMENT_ID)?.prompt).toBe("keep me"); | 1458 | expect(draftFor(threadId, TEST_ENVIRONMENT_ID)?.prompt).toBe("keep me"); |
| 1459 | }); | 1459 | }); |
| 1460 | | 1460 | |
| 1461 | it("finalizes a promoted draft after the canonical thread route is active", () => { | 1461 | it("moves composer edits made during promotion to the canonical thread", () => { |
| 1462 | const store = useComposerDraftStore.getState(); | 1462 | const store = useComposerDraftStore.getState(); |
| 1463 | store.setProjectDraftThreadId(projectRef, draftId, { threadId }); | 1463 | store.setProjectDraftThreadId(projectRef, draftId, { threadId }); |
| 1464 | store.setPrompt(draftId, "promote me"); | | |
| 1465 | markPromotedDraftThread(threadId); | 1464 | markPromotedDraftThread(threadId); |
| | 1465 | store.setPrompt(draftId, "typed during setup"); |
| 1466 | | 1466 | |
| 1467 | finalizePromotedDraftThreadByRef(scopeThreadRef(TEST_ENVIRONMENT_ID, threadId)); | 1467 | finalizePromotedDraftThreadByRef(scopeThreadRef(TEST_ENVIRONMENT_ID, threadId)); |
| 1468 | | 1468 | |
| 1469 | expect(useComposerDraftStore.getState().getDraftThreadByProjectRef(projectRef)).toBeNull(); | 1469 | expect(useComposerDraftStore.getState().getDraftThreadByProjectRef(projectRef)).toBeNull(); |
| 1470 | expect(useComposerDraftStore.getState().getDraftThread(draftId)).toBeNull(); | 1470 | expect(useComposerDraftStore.getState().getDraftThread(draftId)).toBeNull(); |
| 1471 | expect(draftByKey(draftId)).toBeUndefined(); | 1471 | expect(draftByKey(draftId)).toBeUndefined(); |
| | 1472 | expect(draftFor(threadId, TEST_ENVIRONMENT_ID)?.prompt).toBe("typed during setup"); |
| 1472 | }); | 1473 | }); |
| 1473 | | 1474 | |
| 1474 | it("finalizes a matching materialized draft even when promotion was not pre-marked", () => { | 1475 | it("finalizes a matching materialized draft even when promotion was not pre-marked", () => { |
| ... | @@ -1481,6 +1482,7 @@ describe("composerDraftStore project draft thread mapping", () => { | ... | @@ -1481,6 +1482,7 @@ describe("composerDraftStore project draft thread mapping", () => { |
| 1481 | expect(useComposerDraftStore.getState().getDraftThreadByProjectRef(projectRef)).toBeNull(); | 1482 | expect(useComposerDraftStore.getState().getDraftThreadByProjectRef(projectRef)).toBeNull(); |
| 1482 | expect(useComposerDraftStore.getState().getDraftThread(draftId)).toBeNull(); | 1483 | expect(useComposerDraftStore.getState().getDraftThread(draftId)).toBeNull(); |
| 1483 | expect(draftByKey(draftId)).toBeUndefined(); | 1484 | expect(draftByKey(draftId)).toBeUndefined(); |
| | 1485 | expect(draftFor(threadId, TEST_ENVIRONMENT_ID)?.prompt).toBe("promote me"); |
| 1484 | }); | 1486 | }); |
| 1485 | | 1487 | |
| 1486 | it("updates branch context on an existing draft thread", () => { | 1488 | it("updates branch context on an existing draft thread", () => { |