Files
wordpress-theme-aksrt/tests/widget-system/settings-save-bar-contract.test.cjs
T

32 lines
1.3 KiB
JavaScript

const test = require('node:test')
const assert = require('node:assert/strict')
const fs = require('node:fs')
const path = require('node:path')
const root = path.resolve(__dirname, '../..')
const read = file => fs.readFileSync(path.join(root, file), 'utf8')
const pages = [
'assets/admin/src/pages/users/UsersWechatTemplate.vue',
'assets/admin/src/pages/users/UsersLevel.vue',
'assets/admin/src/pages/users/UsersVerify.vue',
'assets/admin/src/pages/CmsCredits.vue',
'assets/admin/src/pages/permissions/PermissionsCapabilities.vue',
'assets/admin/src/pages/content/FooterTabbarSettings.vue',
]
test('custom settings pages use the shared dirty save bar without page-level save buttons', () => {
for (const page of pages) {
const source = read(page)
assert.equal((source.match(/<JioSaveBar\b/g) || []).length, 1, page)
assert.match(source, /<JioSaveBar\b[^>]*:dirty="dirty"[^>]*@save="[^"]+"[^>]*@reload="[^"]+"/, page)
assert.doesNotMatch(source, /class="jio-form-(?:actions|footer)"/, page)
assert.doesNotMatch(source, /@click="(?:handleSave|save|saveCfg)"/, page)
}
})
test('footer tabbar single-post mode is persisted by the save endpoint', () => {
const controller = read('src/Admin/GlobalController.php')
assert.match(controller, /'footer_tabbar_single'\s*=>\s*in_array\(\$params\['footer_tabbar_single'\]/)
})