feat(frontend): integrate toast into post submission

This commit is contained in:
2026-08-18 13:06:51 +08:00
parent 95553086dd
commit 2881c69e9c
3 changed files with 123 additions and 22 deletions
@@ -316,6 +316,45 @@ test('settings actions use rehydrated fixed-id notyf flows', () => {
assert.equal(fs.existsSync(path.join(root, 'templates/parts/user-center/account-modals.php')), false);
});
test('front submit actions use direct fixed-id notyf flows', () => {
const submit = read('assets/js/front-submit.js');
const page = read('templates/pages/page-submit.php');
[
'aksrt-front-submit-draft-toast',
'aksrt-front-submit-publish-toast',
'aksrt-front-submit-delete-draft-toast',
'aksrt-front-submit-featured-upload-toast',
'aksrt-front-submit-slide-upload-toast',
'aksrt-front-submit-video-cover-toast',
'aksrt-front-submit-resource-upload-toast',
'aksrt-front-submit-editor-image-toast',
'aksrt-front-submit-ai-tags-toast',
'aksrt-front-submit-ai-summary-toast',
].forEach((id) => assert.match(submit, new RegExp("['\"]" + id + "['\"]")));
assert.match(submit, /submit: function[\s\S]*?notyf\([^;]+?'load'[^;]+?toastId[\s\S]*?notyf\([^;]+?'success'[^;]+?toastId[\s\S]*?notyf\([^;]+?'danger'[^;]+?toastId/);
assert.match(submit, /bindDraftDelete: function[\s\S]*?'aksrt-front-submit-delete-draft-toast'[\s\S]*?'load'[\s\S]*?'success'[\s\S]*?'danger'/);
[
'imageToastId',
'slideToastId',
'videoToastId',
].forEach((variable) => {
assert.match(submit, new RegExp("notyf\\([^;]+?'load'[^;]+?" + variable + "\\);"));
assert.match(submit, new RegExp("notyf\\([^;]+?'success'[^;]+?" + variable + "\\);"));
assert.match(submit, new RegExp("notyf\\([^;]+?'danger'[^;]+?" + variable + "\\);"));
});
assert.match(submit, /aksrt-front-submit-resource-upload-toast[\s\S]*?'load'[\s\S]*?'success'[\s\S]*?'danger'/);
assert.match(submit, /aksrt-front-submit-editor-image-toast[\s\S]*?'load'[\s\S]*?'success'[\s\S]*?'danger'/);
assert.match(submit, /aksrt-front-submit-ai-tags-toast[\s\S]*?aksrt-front-submit-ai-summary-toast[\s\S]*?'load'[\s\S]*?'success'[\s\S]*?'danger'/);
assert.match(submit, /needContent[^;]+?'warning'/);
assert.doesNotMatch(submit, /\b(?:window\.)?alert\s*\(/);
assert.match(page, /'aksrt-front-submit',[\s\S]*?'\/assets\/js\/front-submit\.js',[\s\S]*?\[[^\]]*'aksrt-notyf'[^\]]*\]/);
});
test('legacy frontend toast APIs and selectors are fully removed', () => {
const files = [
'assets/js',