|
1 | 1 | import { testContext, disposeTestDocumentStore } from "../Utils/TestUtil"; |
2 | 2 | import * as assert from "assert"; |
3 | 3 | import DocumentStore, { |
4 | | - IDocumentStore, |
| 4 | + IDocumentStore, PatchCommandData, PatchRequest, |
5 | 5 | } from "../../src"; |
6 | 6 | import { assertThat } from "../Utils/AssertExtensions"; |
7 | 7 |
|
@@ -391,4 +391,33 @@ describe("With custom key case conventions set", function () { |
391 | 391 | assert.strictEqual(loaded.Equipment[0].Name, stored.equipment[0].name); |
392 | 392 | } |
393 | 393 | }); |
| 394 | + |
| 395 | + it("returns correct modified document after patch", async () => { |
| 396 | + class PascalDoc { |
| 397 | + public SIPCall: string |
| 398 | + } |
| 399 | + |
| 400 | + { |
| 401 | + const session = regularStore.openSession(); |
| 402 | + const pascalDoc = new PascalDoc(); |
| 403 | + pascalDoc.SIPCall = "RavenDB"; |
| 404 | + |
| 405 | + await session.store(pascalDoc, "pascal/1"); |
| 406 | + await session.saveChanges(); |
| 407 | + } |
| 408 | + let modifiedDocument |
| 409 | + regularStore.addSessionListener("afterSaveChanges", event => { |
| 410 | + modifiedDocument = event.entity |
| 411 | + }); |
| 412 | + |
| 413 | + const session = regularStore.openSession(); |
| 414 | + await session.load("pascal/1"); |
| 415 | + |
| 416 | + const patchRequest = PatchRequest.forScript("this.SIPCall = \"Patched\""); |
| 417 | + session.advanced.defer(new PatchCommandData("pascal/1", null, patchRequest)) |
| 418 | + await session.saveChanges(); |
| 419 | + |
| 420 | + assert.strictEqual(modifiedDocument.SIPCall, "Patched") |
| 421 | + assert.ok(!("sipCall" in modifiedDocument)); |
| 422 | + }); |
394 | 423 | }); |
0 commit comments