Files
ArtPlayer/scripts/creatTestFromDoc.js
T
2020-05-20 10:46:31 +08:00

55 lines
1.3 KiB
JavaScript

const fs = require('fs');
const path = require('path');
const logger = require('./logger');
try {
const documentText = [
'README.md',
'class.md',
'events.md',
'libraries.md',
'options.md',
'properties.md',
'properties.md',
]
.map((name) => {
return fs.readFileSync(path.resolve(__dirname, '../docs/document/' + name), 'utf-8');
})
.join('');
const jsTests = documentText.match(/\[Run Code\]\(\/([\s\S]*?)\)\n\n\`{3}js([\s\S]*?)\`{3}/g);
const jsBlocks = jsTests.map((item) => {
const result = item.match(/\[Run Code\]\(\/([\s\S]*)\)\n\n\`{3}js([\s\S]*?)\`{3}/);
return {
name: result[1],
code: result[2],
};
});
fs.writeFileSync(
path.resolve(__dirname, '../test/document.test.js'),
`
describe('Document', function() {
afterEach(function() {
[...Artplayer.instances].forEach(art => {
art.destroy(true);
});
});
${jsBlocks
.map((item) => {
return `
it(\`${item.name}\`, function() {
${item.code}
});
`;
})
.join('\n')};
});
`,
);
logger.success('Create a test case from the document successfully');
} catch (error) {
logger.fatal(error);
}