mirror of
https://github.com/zhw2590582/ArtPlayer.git
synced 2026-10-09 03:46:16 -08:00
55 lines
1.3 KiB
JavaScript
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);
|
|
}
|