Skip to content

Commit

Permalink
enhance: remove opinionated presets
Browse files Browse the repository at this point in the history
  • Loading branch information
kevinslin committed Nov 21, 2020
1 parent cc50327 commit 6b6bd8d
Show file tree
Hide file tree
Showing 4 changed files with 84 additions and 40 deletions.
4 changes: 4 additions & 0 deletions packages/common-test-utils/src/types.ts
Expand Up @@ -11,6 +11,10 @@ export type WorkspaceOpts = {
vaults: DVault[];
};

export type EngineOpt = {
engine: DEngineClientV2;
};

export type SetupHookFunction<T = any> = (
opts: {
engine?: DEngineClientV2;
Expand Down
8 changes: 4 additions & 4 deletions packages/plugin-core/src/settings.ts
Expand Up @@ -48,14 +48,14 @@ const _SETTINGS: ConfigUpdateChangeSet = {
"dendron.rootDir": {
default: ".",
},
"editor.minimap.enabled": {
default: false,
},
// "editor.minimap.enabled": {
// default: false,
// },
//"dendron.rootDir": opts.rootDir,
"files.autoSave": {
default: "onFocusChange",
},
"workbench.colorTheme": { default: "GitHub Light" },
// "workbench.colorTheme": { default: "GitHub Light" },
// "workbench.colorTheme": { default: "Kimbie Dark" },
// --- images
"pasteImage.path": { default: "${currentFileDir}/assets/images" },
Expand Down
78 changes: 56 additions & 22 deletions packages/plugin-core/src/test/suite-integ/SetupWorkspace.test.ts
Expand Up @@ -23,7 +23,7 @@ import { _activate } from "../../_extension";
import { onExtension, onWSInit, setupDendronWorkspace } from "../testUtils";
import {
expect,
runMultiVaultTestV3,
runWorkspaceTestV3,
setupCodeWorkspaceV2,
} from "../testUtilsv2";

Expand Down Expand Up @@ -128,19 +128,20 @@ id: bond
});

it("workspace active, no prior workspace version", function (done) {
onExtension({
action: "activate",
cb: async (_event: HistoryEvent) => {
runWorkspaceTestV3({
ctx,
preActivateHook: () => {
DendronWorkspace.version = () => "0.0.1";
},
onInit: async ({ wsRoot, vaults, engine }) => {
assert.strictEqual(DendronWorkspace.isActive(), true);
assert.strictEqual(
ctx.workspaceState.get(WORKSPACE_STATE.WS_VERSION),
"0.0.1"
);
const engine = DendronWorkspace.instance().getEngine();
const wsRoot = DendronWorkspace.rootDir() as string;
// check for config file
// check config
const config = readYAML(DConfig.configPath(wsRoot)) as DendronConfig;
assert.deepStrictEqual(config.vaults, [{ fsPath: vaultPath }]);
assert.deepStrictEqual(config.vaults, vaults);

// check for meta
const port = getPortFilePath({ wsRoot });
Expand All @@ -151,23 +152,56 @@ id: bond
);
assert.strictEqual(meta.version, "0.0.1");
assert.ok(meta.activationTime < Time.now().toMillis());

// check settings
const payload = fs.readJSONSync(
path.join(wsRoot, "dendron.code-workspace")
);
expect(payload).toEqual({
extensions: {
recommendations: [
"dendron.dendron-paste-image",
"equinusocio.vsc-material-theme",
"dendron.dendron-markdown-shortcuts",
"dendron.dendron-markdown-preview-enhanced",
"dendron.dendron-markdown-links",
"github.github-vscode-theme",
],
unwantedRecommendations: [
"dendron.dendron-markdown-notes",
"shd101wyy.markdown-preview-enhanced",
"kortina.vscode-markdown-notes",
"mushan.vscode-paste-image",
],
},
folders: [
{
path: "vault",
},
],
settings: {
"dendron.rootDir": ".",
"editor.snippetSuggestions": "inline",
"editor.suggest.showSnippets": true,
"editor.suggest.snippetsPreventQuickSuggestions": false,
"editor.tabCompletion": "on",
"files.autoSave": "onFocusChange",
"markdown-preview-enhanced.enableWikiLinkSyntax": true,
"markdown-preview-enhanced.wikiLinkFileExtension": ".md",
"pasteImage.path": "${currentFileDir}/assets/images",
"pasteImage.prefix": "/",
},
});

// check for notes
assert.deepStrictEqual(
fs.readdirSync(DendronWorkspace.instance().vaults[0].fsPath).sort(),
[".vscode", "root.md", "root.schema.yml"]
);
assert.strictEqual(_.values(engine.notes).length, 1);
assert.deepStrictEqual(fs.readdirSync(vaultPath).sort(), [
".vscode",
"root.md",
"root.schema.yml",
]);
done();
},
});

DendronWorkspace.version = () => "0.0.1";
setupDendronWorkspace(root.name, ctx, {
lsp: true,
useCb: async (_vaultPath) => {
vaultPath = _vaultPath;
},
});
});

it("missing root.schema", function (done) {
Expand Down Expand Up @@ -200,7 +234,7 @@ id: bond
});

it.skip("with template", function (done) {
runMultiVaultTestV3({
runWorkspaceTestV3({
ctx,
setupWsOverride: {
skipConfirmation: true,
Expand Down
34 changes: 20 additions & 14 deletions packages/plugin-core/src/test/testUtilsv2.ts
Expand Up @@ -5,15 +5,18 @@ import {
tmpDir,
} from "@dendronhq/common-server";
import {
EngineOpt,
EngineTestUtilsV2,
EngineTestUtilsV3,
NodeTestPresetsV2,
NotePresetsUtils,
SetupHookFunction,
SetupWSOpts,
WorkspaceOpts,
} from "@dendronhq/common-test-utils";
import { DConfig } from "@dendronhq/engine-server";
import assert from "assert";
import fs from "fs-extra";
import _ from "lodash";
import path from "path";
import { ExtensionContext, Location, Position, Uri, window } from "vscode";
Expand All @@ -26,7 +29,6 @@ import { WorkspaceFolderRaw } from "../types";
import { DendronWorkspace } from "../workspace";
import { _activate } from "../_extension";
import { createMockConfig, onWSInit } from "./testUtils";
import fs from "fs-extra";

type SetupCodeConfigurationV2 = {
configOverride?: { [key: string]: any };
Expand Down Expand Up @@ -84,16 +86,18 @@ export async function runMultiVaultTest(
await _activate(ctx);
}

export async function runMultiVaultTestV3(
export async function runWorkspaceTestV3(
opts: SetupCodeWorkspaceMultiVaultV2Opts & {
onInit: (opts: { vaults: DVault[]; wsRoot: string }) => Promise<void>;
onInit: (opts: WorkspaceOpts & EngineOpt) => Promise<void>;
}
) {
const { ctx } = opts;
const { vaults, wsRoot } = await setupCodeWorkspaceMultiVaultV3(opts);
const { vaults, wsRoot } = await setupCodeWorkspaceV3(opts);
onWSInit(async () => {
await opts.onInit({ wsRoot, vaults });
const engine = DendronWorkspace.instance().getEngine();
await opts.onInit({ wsRoot, vaults, engine });
});
opts?.preActivateHook ? await opts.preActivateHook() : null;
await _activate(ctx);
}

Expand Down Expand Up @@ -242,7 +246,10 @@ export async function setupCodeWorkspaceMultiVaultV2(
return { wsRoot, vaults, workspaceFile, workspaceFolders };
}

export async function setupCodeWorkspaceMultiVaultV3(
/**
* Used for setup workspace test
*/
export async function setupCodeWorkspaceV3(
opts: SetupCodeWorkspaceMultiVaultV2Opts
) {
const copts = _.defaults(opts, {
Expand All @@ -260,21 +267,20 @@ export async function setupCodeWorkspaceMultiVaultV3(
DendronWorkspace.workspaceFile = () => {
return Uri.file(path.join(wsRoot, "dendron.code-workspace"));
};
DendronWorkspace.workspaceFolders = () => {
return [];
// return vaults.map((v) => ({
// name: v.name,
// index: 1,
// uri: Uri.file(v.fsPath),
// }));
};
const workspaceFile = DendronWorkspace.workspaceFile();
const workspaceFolders = DendronWorkspace.workspaceFolders();
const vaults = await new SetupWorkspaceCommand().execute({
rootDirRaw: wsRoot,
skipOpenWs: true,
...copts.setupWsOverride,
});
DendronWorkspace.workspaceFolders = () => {
return vaults.map((v) => ({
name: v.name || path.basename(v.fsPath),
index: 1,
uri: Uri.file(v.fsPath),
}));
};

// update vscode settings
// await DendronWorkspace.updateWorkspaceFile({
Expand Down

0 comments on commit 6b6bd8d

Please sign in to comment.