32 lines
1.3 KiB
JavaScript
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'\]/)
|
|
})
|