| 246 | * @returns |
| 247 | */ |
| 248 | export async function runEngineTestV5( |
| 249 | func: RunEngineTestFunctionV5, |
| 250 | opts: RunEngineTestV5Opts |
| 251 | ): Promise<any> { |
| 252 | const { |
| 253 | preSetupHook, |
| 254 | extra, |
| 255 | vaults: vaultsInit, |
| 256 | createEngine, |
| 257 | initGit, |
| 258 | workspaces, |
| 259 | addVSWorkspace, |
| 260 | git, |
| 261 | } = _.defaults(opts, { |
| 262 | preSetupHook: async () => {}, |
| 263 | postSetupHook: async () => {}, |
| 264 | createEngine: createEngineV3FromEngine, |
| 265 | extra: {}, |
| 266 | // third vault has diff name |
| 267 | vaults: [ |
| 268 | { fsPath: "vault1" }, |
| 269 | { fsPath: "vault2" }, |
| 270 | { fsPath: "vault3", name: "vaultThree" }, |
| 271 | ], |
| 272 | addVSWorkspace: false, |
| 273 | }); |
| 274 | |
| 275 | let homeDirStub: sinon.SinonStub | undefined; |
| 276 | let server: Server | undefined; |
| 277 | |
| 278 | try { |
| 279 | // --- begin ws setup |
| 280 | // make sure tests don't overwrite local homedir contents |
| 281 | homeDirStub = TestEngineUtils.mockHomeDir(); |
| 282 | const { wsRoot, vaults } = await setupWS({ |
| 283 | vaults: vaultsInit, |
| 284 | workspaces, |
| 285 | wsRoot: opts.wsRoot, |
| 286 | modConfigCb: opts.modConfigCb, |
| 287 | }); |
| 288 | if ((opts.initHooks, vaults)) { |
| 289 | fs.ensureDirSync(path.join(wsRoot, CONSTANTS.DENDRON_HOOKS_BASE)); |
| 290 | } |
| 291 | if (addVSWorkspace) { |
| 292 | fs.writeJSONSync( |
| 293 | path.join(wsRoot, CONSTANTS.DENDRON_WS_NAME), |
| 294 | { |
| 295 | folders: vaults.map((ent) => ({ |
| 296 | path: ent.fsPath, |
| 297 | name: ent.name, |
| 298 | })) as WorkspaceFolderRaw[], |
| 299 | settings: {}, |
| 300 | extensions: {}, |
| 301 | } as WorkspaceSettings, |
| 302 | { spaces: 4 } |
| 303 | ); |
| 304 | } |
| 305 | |