diff --git a/package.json b/package.json index c5cde29e52..bbc6c1bc1e 100644 --- a/package.json +++ b/package.json @@ -13,6 +13,7 @@ "eslint": "eslint lib test", "pretest": "npm run clean && npm run build", "test": "mocha test/scripts/**/*.ts --require ts-node/register", + "yapinTest": "mocha --file test/scripts/hexo/post.ts --grep \"yapinxxx test\" --require ts-node/register", "test-cov": "c8 --reporter=lcovonly npm test -- --no-parallel", "prepare": "husky install" }, @@ -66,7 +67,6 @@ "warehouse": "^5.0.1" }, "devDependencies": { - "0x": "^5.1.2", "@types/abbrev": "^1.1.3", "@types/bluebird": "^3.5.37", "@types/chai": "^4.3.11", @@ -77,6 +77,7 @@ "@types/rewire": "^2.5.30", "@types/sinon": "^17.0.3", "@types/text-table": "^0.2.4", + "0x": "^5.1.2", "c8": "^9.0.0", "chai": "^4.3.6", "cheerio": "0.22.0", @@ -84,9 +85,9 @@ "eslint": "^8.48.0", "eslint-config-hexo": "^5.0.0", "hexo-renderer-marked": "^6.0.0", - "husky": "^8.0.1", + "husky": "^8.0.3", "lint-staged": "^15.2.0", - "mocha": "^10.0.0", + "mocha": "^10.4.0", "rewire": "^7.0.0", "sinon": "^17.0.1", "ts-node": "^10.9.1", diff --git a/test/scripts/hexo/post.ts b/test/scripts/hexo/post.ts index b01e41d61f..86dcbad01b 100644 --- a/test/scripts/hexo/post.ts +++ b/test/scripts/hexo/post.ts @@ -650,6 +650,50 @@ describe('Post', () => { await unlink(data.path); }); + // #5476 - yapinxxx + // it('publish() - filenames separated by spaces', async () => { + it('yapinxxx test', async () => { + + const assetDir = join(hexo.source_dir, '_drafts'); + const newAssetDir = join(hexo.source_dir, '_posts'); + const date = moment(now); + hexo.config.post_asset_folder = true; + + const write_content = 'This is Hello World with Space'; + const template = [ + '---', + 'title: Hello World', + 'date: ' + date.format('YYYY-MM-DD HH:mm:ss'), + 'tags:', + '---' + ].join('\n') + '\n'; + + const content = [template, write_content].join('\n'); + + // Put some files into the asset folder + await Promise.all([ + writeFile(join(assetDir, 'space file.txt'), write_content), + writeFile(join(assetDir, 'space file test.txt'), write_content), + writeFile(join(assetDir, 'space file test2.txt'), write_content), + writeFile(join(assetDir, 'space file test 3.txt'), write_content) + ]); + + const result = await post.publish({ + slug: 'space file test', + title: 'Hello World' + }); + + // listDir(newAssetDir).then(list => { + // console.log(list, 'show all files ####'); + // }); + + result.path.should.eql(join(newAssetDir, 'space-file-test.md')); + result.content.should.eql(content); + + await unlink(result.path); + }); + + it('render()', async () => { // TODO: validate data const beforeHook = spy();