@@ -2,7 +2,7 @@ import os from 'node:os'
22import path from 'node:path'
33import fs from 'fs-extra'
44import { afterEach , describe , expect , it , vi } from 'vitest'
5- import { getPaths } from '../paths'
5+ import { getPaths , hasMarkdownVaultData } from '../paths'
66
77vi . mock ( 'electron-store' , ( ) => {
88 class MockStore {
@@ -80,6 +80,45 @@ afterEach(() => {
8080} )
8181
8282describe ( 'getPaths' , ( ) => {
83+ it ( 'detects existing data in legacy root vault layout' , ( ) => {
84+ const vaultPath = createTempDir ( )
85+
86+ fs . ensureDirSync ( path . join ( vaultPath , '.masscode' ) )
87+ fs . writeJSONSync ( path . join ( vaultPath , '.masscode' , 'state.json' ) , {
88+ counters : {
89+ contentId : 0 ,
90+ folderId : 1 ,
91+ snippetId : 1 ,
92+ tagId : 0 ,
93+ } ,
94+ folders : [
95+ {
96+ id : 1 ,
97+ name : 'Legacy' ,
98+ orderIndex : 0 ,
99+ parentId : null ,
100+ } ,
101+ ] ,
102+ snippets : [
103+ {
104+ filePath : 'Legacy/file.md' ,
105+ id : 1 ,
106+ } ,
107+ ] ,
108+ tags : [ ] ,
109+ version : 2 ,
110+ } )
111+ fs . ensureDirSync ( path . join ( vaultPath , 'Legacy' ) )
112+ fs . writeFileSync ( path . join ( vaultPath , 'Legacy' , 'file.md' ) , '# Legacy' )
113+
114+ expect ( hasMarkdownVaultData ( vaultPath ) ) . toBe ( true )
115+ expect (
116+ fs . pathExistsSync (
117+ path . join ( vaultPath , 'code' , '.masscode' , 'state.json' ) ,
118+ ) ,
119+ ) . toBe ( true )
120+ } )
121+
83122 it ( 'migrates legacy code vault root into code' , ( ) => {
84123 const vaultPath = createTempDir ( )
85124
0 commit comments