import * as assert from 'assert'; import { before, after } from 'mocha'; import * as sinon from 'sinon'; // You can import and use all API from the 'vscode' module // as well as import your extension to test it import * as path from 'path'; import Utils from '../../utils'; import expectedCardsHeader from '../fixtures/cards_demo'; import expectedCardsAsterisk from '../fixtures/asterisk_demo'; import expectedCardsBullet from '../fixtures/bullet_demo'; import expectedCardsReverse from '../fixtures/reverse_demo'; // Replacer to avoid circular reference in JSON const ignoreReverseFor = (key, value) => { if (key === 'reverseFor' && value) { const { reverseFor, ...clean } = value; return clean; } else return value; }; suite('Embedded card provider', () => { before(async () => { // Get the tasks await Utils.embedded.initProvider (); }); test('header cards should be correctly identified', async () => { const actual = await Utils.embedded.provider.getFileData(path.resolve(__dirname, '../../../demo/Cards Demo.md')); // console.log(JSON.stringify(actual.data, ignoreReverseFor, 2)); assert.strictEqual(actual.data.length, expectedCardsHeader.length); actual.data.forEach((card, i) => { // console.log('Matching', t, 'to', i, expected[i]); sinon.assert.match(card, expectedCardsHeader[i]); }); }); test('asterisk cards should be correctly identified', async () => { const actual = await Utils.embedded.provider.getFileData(path.resolve(__dirname, '../../../demo/Asterisk Demo.md')); // console.log(JSON.stringify(actual.data, ignoreReverseFor, 2)); assert.strictEqual(actual.data.length, expectedCardsAsterisk.length); actual.data.forEach((card, i) => { // console.log('Matching', t, 'to', i, expected[i]); sinon.assert.match(card, expectedCardsAsterisk[i]); }); }); test('bullet cards should be correctly identified', async () => { const actual = await Utils.embedded.provider.getFileData(path.resolve(__dirname, '../../../demo/Bullets Demo.md')); // console.log(JSON.stringify(actual.data, ignoreReverseFor, 2)); assert.strictEqual(actual.data.length, expectedCardsBullet.length); actual.data.forEach((card, i) => { // console.log('Matching', t, 'to', i, expected[i]); sinon.assert.match(card, expectedCardsBullet[i]); }); }); test('reverse cards should be correctly identified', async () => { const actual = await Utils.embedded.provider.getFileData(path.resolve(__dirname, '../../../demo/Reverse Demo.md')); // console.log(JSON.stringify(actual.data, ignoreReverseFor, 2)); assert.strictEqual(actual.data.length, expectedCardsReverse.length); actual.data.forEach((card, i) => { // console.log('Matching', t, 'to', i, expected[i]); sinon.assert.match(card, expectedCardsReverse[i]); }); }); });