MCPcopy
hub / github.com/dendronhq/dendron / stubNoteTest

Function stubNoteTest

packages/engine-test-utils/src/noteStore.common.ts:276–340  ·  view source on GitHub ↗
(
  noteStoreFactory: (
    wsRoot: string,
    vaults: DVault[],
    engine: DEngineClient
  ) => Promise<INoteStore<string>>
)

Source from the content-addressed store, hash-verified

274}
275
276function stubNoteTest(
277 noteStoreFactory: (
278 wsRoot: string,
279 vaults: DVault[],
280 engine: DEngineClient
281 ) => Promise<INoteStore<string>>
282) {
283 test("WHEN writing a stub note, THEN get and getMetadata should retrieve same note", async () => {
284 await runEngineTestV5(
285 async ({ vaults, wsRoot, engine }) => {
286 const vault = vaults[0];
287
288 const noteStore = await noteStoreFactory(wsRoot, vaults, engine);
289 const newNote = await NoteTestUtilsV4.createNote({
290 fname: "foobar",
291 body: "",
292 vault,
293 wsRoot,
294 stub: true,
295 });
296
297 let note = await noteStore.get(newNote.id);
298 expect(note.data).toBeFalsy();
299 await noteStore.write({ key: newNote.id, note: newNote });
300
301 // Make sure note is not written to filesystem
302 const vpath = vault2Path({ vault, wsRoot });
303 expect(_.includes(fs.readdirSync(vpath), "foobar.md")).toBeFalsy();
304
305 // Test NoteStore.get
306 note = await noteStore.get(newNote.id);
307 expect(note.data!.fname).toEqual(newNote.fname);
308 expect(note.data!.body.trim()).toEqual(newNote.body.trim());
309 expect(note.data!.contentHash).toBeTruthy();
310
311 // Test NoteStore.getMetadata
312 const noteMetadata = await noteStore.getMetadata(newNote.id);
313 expect(noteMetadata.data!.fname).toEqual(newNote.fname);
314
315 // Test NoteStore.findMetadata
316 let findResp = await noteStore.findMetaData({ fname: "foobar" });
317 expect(findResp.data![0].fname).toEqual(newNote.fname);
318
319 // Test NoteStore.findMetadata excludeStub = true
320 findResp = await noteStore.findMetaData({
321 fname: "foobar",
322 excludeStub: true,
323 });
324 expect(findResp.data!.length).toEqual(0);
325
326 // Test NoteStore.findMetadata excludeStub = false
327 findResp = await noteStore.findMetaData({
328 excludeStub: false,
329 });
330
331 expect(
332 findResp.data!.map((meta) => meta.fname).includes(newNote.fname)
333 ).toBeTruthy();

Callers 1

runAllNoteStoreTestsFunction · 0.85

Calls 7

runEngineTestV5Function · 0.90
vault2PathFunction · 0.90
expectFunction · 0.85
getMethod · 0.65
writeMethod · 0.65
getMetadataMethod · 0.65
findMetaDataMethod · 0.65

Tested by

no test coverage detected