28 lines
1.3 KiB
JavaScript
28 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 file = fs.readFileSync(path.join(__dirname, '../../src/views/goauto/yeeke-returns/index.vue'), 'utf8')
|
|
const script = file.match(/<script>([\s\S]*?)<\/script>/)[1].replace(/^import[^\n]+\n/gm, '').replace('export default', 'return')
|
|
const options = new Function(script)()
|
|
|
|
test('Yeeke status filters and table/detail labels agree for both HAR statuses', () => {
|
|
const filters = options.data().claimStatusOptions
|
|
for (const [value, label] of [['1', '待出货'], ['2', '已重出']]) {
|
|
assert.equal(filters.find(item => item.value === value).label, label)
|
|
assert.equal(options.methods.claimStatusMeta(value).label, label)
|
|
}
|
|
assert.equal(filters.find(item => item.value === 'unknown').label, '未知(原样展示)')
|
|
assert.equal(options.methods.claimStatusMeta('9').label, '其他:9')
|
|
})
|
|
|
|
test('clearing the status filter restores all records and reloads', () => {
|
|
let reloads = 0
|
|
const vm = { ...options.data(), load() { reloads++ } }
|
|
vm.query.claimStatus = '2'
|
|
options.methods.reset.call(vm)
|
|
assert.equal(vm.query.claimStatus, '')
|
|
assert.equal(vm.query.page, 1)
|
|
assert.equal(reloads, 1)
|
|
})
|