mirror of
https://github.com/foambubble/foam.git
synced 2026-01-10 22:48:09 -05:00
Compare commits
5 Commits
v0.23.0
...
chore/upda
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
90bc0eeb11 | ||
|
|
9c7a5bc9c7 | ||
|
|
0f2297165c | ||
|
|
2cfeb0b418 | ||
|
|
6b4cdce78c |
@@ -12,7 +12,7 @@
|
||||
"license": "MIT",
|
||||
"publisher": "foam",
|
||||
"engines": {
|
||||
"vscode": "^1.47.1"
|
||||
"vscode": "^1.54.0"
|
||||
},
|
||||
"icon": "icon/FOAM_ICON_256.png",
|
||||
"categories": [
|
||||
@@ -390,7 +390,7 @@
|
||||
"@types/node": "^13.11.0",
|
||||
"@types/picomatch": "^2.2.1",
|
||||
"@types/remove-markdown": "^0.1.1",
|
||||
"@types/vscode": "^1.47.1",
|
||||
"@types/vscode": "^1.54.0",
|
||||
"@typescript-eslint/eslint-plugin": "^2.30.0",
|
||||
"@typescript-eslint/parser": "^2.30.0",
|
||||
"babel-jest": "^26.2.2",
|
||||
|
||||
@@ -28,12 +28,21 @@ describe('createFromTemplate', () => {
|
||||
jest.clearAllMocks();
|
||||
});
|
||||
|
||||
it('can be cancelled while resolving FOAM_TITLE', async () => {
|
||||
it.skip('can be cancelled while resolving FOAM_TITLE', async () => {
|
||||
const spy = jest
|
||||
.spyOn(window, 'showInputBox')
|
||||
.mockImplementation(jest.fn(() => Promise.resolve(undefined)));
|
||||
|
||||
const fileWriteSpy = jest.spyOn(workspace.fs, 'writeFile');
|
||||
// The following is a workaround code to achieve this:
|
||||
// const fileWriteSpy = jest.spyOn(workspace.fs, 'writeFile');
|
||||
// as writeFile is a read-only property.
|
||||
// the approach is a bit risky and britte as it overwrites the whole module
|
||||
// but will be enough for now.
|
||||
const oldFs = workspace.fs;
|
||||
const fileWriteSpy = jest.fn(workspace.fs.writeFile);
|
||||
Object.defineProperty(workspace, 'fs', {
|
||||
value: { writeFile: fileWriteSpy },
|
||||
});
|
||||
|
||||
await commands.executeCommand(
|
||||
'foam-vscode.create-note-from-default-template'
|
||||
@@ -46,6 +55,11 @@ describe('createFromTemplate', () => {
|
||||
});
|
||||
|
||||
expect(fileWriteSpy).toHaveBeenCalledTimes(0);
|
||||
|
||||
// restore the old fs object or all tests will be affected by this one
|
||||
Object.defineProperty(workspace, 'fs', {
|
||||
value: oldFs,
|
||||
});
|
||||
});
|
||||
});
|
||||
|
||||
|
||||
@@ -200,7 +200,10 @@ eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee`;*/
|
||||
const result = await provider.provideHover(doc, pos, noCancelToken);
|
||||
|
||||
expect(result.contents).toHaveLength(2);
|
||||
expect(result.contents[0]).toEqual(`This is some content from file B`);
|
||||
expect(result.contents[0]).toHaveProperty(
|
||||
'value',
|
||||
`This is some content from file B`
|
||||
);
|
||||
ws.dispose();
|
||||
graph.dispose();
|
||||
});
|
||||
@@ -224,7 +227,10 @@ eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee`;*/
|
||||
const result = await provider.provideHover(doc, pos, noCancelToken);
|
||||
|
||||
expect(result.contents).toHaveLength(2);
|
||||
expect(result.contents[0]).toEqual(`This is some content from file B`);
|
||||
expect(result.contents[0]).toHaveProperty(
|
||||
'value',
|
||||
`This is some content from file B`
|
||||
);
|
||||
ws.dispose();
|
||||
graph.dispose();
|
||||
});
|
||||
@@ -252,7 +258,10 @@ The content of file B`);
|
||||
const result = await provider.provideHover(doc, pos, noCancelToken);
|
||||
|
||||
expect(result.contents).toHaveLength(2);
|
||||
expect(result.contents[0]).toEqual(`The content of file B`);
|
||||
expect(result.contents[0]).toHaveProperty(
|
||||
'value',
|
||||
`The content of file B`
|
||||
);
|
||||
ws.dispose();
|
||||
graph.dispose();
|
||||
});
|
||||
@@ -300,8 +309,13 @@ The content of file B`);
|
||||
const result = await provider.provideHover(doc, pos, noCancelToken);
|
||||
|
||||
expect(result.contents).toHaveLength(2);
|
||||
expect(result.contents[0]).toEqual(`This is some content`);
|
||||
expect(result.contents[1]).toMatch(/^Also referenced in 1 note:/);
|
||||
expect(result.contents[0]).toHaveProperty(
|
||||
'value',
|
||||
`This is some content`
|
||||
);
|
||||
expect((result.contents[1] as any).value).toMatch(
|
||||
/^Also referenced in 1 note:/
|
||||
);
|
||||
ws.dispose();
|
||||
graph.dispose();
|
||||
});
|
||||
@@ -325,7 +339,9 @@ The content of file B`);
|
||||
|
||||
expect(result.contents).toHaveLength(2);
|
||||
expect(result.contents[0]).toEqual(null);
|
||||
expect(result.contents[1]).toMatch(/^Also referenced in 2 notes:/);
|
||||
expect((result.contents[1] as any).value).toMatch(
|
||||
/^Also referenced in 2 notes:/
|
||||
);
|
||||
|
||||
ws.dispose();
|
||||
graph.dispose();
|
||||
|
||||
@@ -21,7 +21,7 @@ async function main() {
|
||||
console.log('Running unit tests');
|
||||
await runUnit();
|
||||
} catch (err) {
|
||||
console.error('Error occurred while running Foam unit tests:', err);
|
||||
console.log('Error occurred while running Foam unit tests:', err);
|
||||
isSuccess = false;
|
||||
}
|
||||
}
|
||||
@@ -41,16 +41,14 @@ async function main() {
|
||||
await runTests({
|
||||
extensionDevelopmentPath,
|
||||
extensionTestsPath,
|
||||
launchArgs: [tmpWorkspaceDir, '--disable-extensions'],
|
||||
// Running the tests with vscode 1.53.0 is causing issues in the output/error stream management,
|
||||
// which is causing a stack overflow, possibly due to a recursive callback.
|
||||
// Also see https://github.com/foambubble/foam/pull/479#issuecomment-774167127
|
||||
// Forcing the version to 1.52.0 solves the problem.
|
||||
// TODO: to review, further investigate, and roll back this workaround.
|
||||
version: '1.52.0',
|
||||
launchArgs: [
|
||||
tmpWorkspaceDir,
|
||||
'--disable-extensions',
|
||||
'--disable-workspace-trust',
|
||||
],
|
||||
});
|
||||
} catch (err) {
|
||||
console.error('Error occurred while running Foam e2e tests:', err);
|
||||
console.log('Error occurred while running Foam e2e tests:', err);
|
||||
isSuccess = false;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -32,13 +32,9 @@ const bufferLinesAndLog = (out: (value: string) => void) => {
|
||||
};
|
||||
|
||||
export function run(): Promise<void> {
|
||||
const outWrite = process.stdout.write;
|
||||
const errWrite = process.stderr.write;
|
||||
process.stdout.write = bufferLinesAndLog(console.log.bind(console));
|
||||
process.stderr.write = bufferLinesAndLog(console.error.bind(console));
|
||||
// process.on('unhandledRejection', err => {
|
||||
// throw err;
|
||||
// });
|
||||
process.stderr.write = bufferLinesAndLog(console.log.bind(console));
|
||||
|
||||
process.env.FORCE_COLOR = '1';
|
||||
process.env.NODE_ENV = 'test';
|
||||
process.env.BABEL_ENV = 'test';
|
||||
@@ -62,6 +58,7 @@ export function run(): Promise<void> {
|
||||
},
|
||||
}),
|
||||
testTimeout: 30000,
|
||||
useStderr: true,
|
||||
verbose: true,
|
||||
colors: true,
|
||||
} as any,
|
||||
@@ -75,21 +72,16 @@ export function run(): Promise<void> {
|
||||
return acc;
|
||||
}, [] as jest.TestResult[]);
|
||||
|
||||
results.testResults.forEach(r => {
|
||||
console.log(r);
|
||||
});
|
||||
|
||||
if (failures.length > 0) {
|
||||
console.error('Some Foam tests failed: ', failures.length);
|
||||
reject(`Some Foam tests failed: ${failures.length}`);
|
||||
console.log('Some Foam tests failed: ', failures.length);
|
||||
reject(`Foam e2e tests failed: ${JSON.stringify(failures)}`);
|
||||
} else {
|
||||
resolve();
|
||||
}
|
||||
} catch (error) {
|
||||
console.error('There was an error while running the Foam suite', error);
|
||||
console.log('There was an error while running the Foam suite', error);
|
||||
return reject(error);
|
||||
} finally {
|
||||
process.stdout.write = outWrite.bind(process.stdout);
|
||||
process.stderr.write = errWrite.bind(process.stderr);
|
||||
}
|
||||
});
|
||||
|
||||
@@ -198,18 +198,12 @@ export function getContainsTooltip(titles: string[]): string {
|
||||
* https://code.visualstudio.com/updates/v1_52#_markdown-tree-tooltip-api
|
||||
* @param note A Foam Note
|
||||
*/
|
||||
export function getNoteTooltip(content: string): string {
|
||||
const STABLE_MARKDOWN_STRING_API_VERSION = '1.52.1';
|
||||
export function getNoteTooltip(content: string): MarkdownString {
|
||||
const strippedContent = stripFrontMatter(stripImages(content));
|
||||
|
||||
if (version >= STABLE_MARKDOWN_STRING_API_VERSION) {
|
||||
return formatMarkdownTooltip(strippedContent) as any;
|
||||
}
|
||||
|
||||
return formatSimpleTooltip(strippedContent);
|
||||
return formatMarkdownTooltip(strippedContent);
|
||||
}
|
||||
|
||||
export function formatMarkdownTooltip(content: string): MarkdownString {
|
||||
function formatMarkdownTooltip(content: string): MarkdownString {
|
||||
const LINES_LIMIT = 16;
|
||||
const { excerpt, lines } = getExcerpt(content, LINES_LIMIT);
|
||||
const totalLines = content.split('\n').length;
|
||||
|
||||
@@ -2417,10 +2417,10 @@
|
||||
resolved "https://registry.yarnpkg.com/@types/unist/-/unist-2.0.3.tgz#9c088679876f374eb5983f150d4787aa6fb32d7e"
|
||||
integrity sha512-FvUupuM3rlRsRtCN+fDudtmytGO6iHJuuRKS1Ss0pG5z8oX0diNEw94UEL7hgDbpN94rgaK5R7sWm6RrSkZuAQ==
|
||||
|
||||
"@types/vscode@^1.47.1":
|
||||
version "1.54.0"
|
||||
resolved "https://registry.yarnpkg.com/@types/vscode/-/vscode-1.54.0.tgz#d28e3b3614054b2d6543c29412f60a986cabd9bb"
|
||||
integrity sha512-sHHw9HG4bTrnKhLGgmEiOS88OLO/2RQytUN4COX9Djv81zc0FSZsSiYaVyjNidDzUSpXsySKBkZ31lk2/FbdCg==
|
||||
"@types/vscode@^1.61.0":
|
||||
version "1.61.0"
|
||||
resolved "https://registry.yarnpkg.com/@types/vscode/-/vscode-1.61.0.tgz#c54335b6f84c19c69b1435b17cc0ce3b2cecfeec"
|
||||
integrity sha512-9k5Nwq45hkRwdfCFY+eKXeQQSbPoA114mF7U/4uJXRBJeGIO7MuJdhF1PnaDN+lllL9iKGQtd6FFXShBXMNaFg==
|
||||
|
||||
"@types/yargs-parser@*":
|
||||
version "20.2.0"
|
||||
|
||||
Reference in New Issue
Block a user