Add tests for wrapping setting without keys
This commit is contained in:
parent
eabc4464df
commit
58760ac4b0
2 changed files with 63 additions and 21 deletions
|
@ -4,44 +4,44 @@ import _ from 'lodash'
|
||||||
describe('Partial update', () => {
|
describe('Partial update', () => {
|
||||||
it('partial update for settings that do not allow partial update', () => {
|
it('partial update for settings that do not allow partial update', () => {
|
||||||
const settings = { ':auto_linker': { ':opts':
|
const settings = { ':auto_linker': { ':opts':
|
||||||
{ ':strip_prefix': true, ':new_window': false, ':rel': "ugc", ':truncate': 3 }
|
{ ':strip_prefix': true, ':new_window': false, ':rel': 'ugc', ':truncate': 3 }
|
||||||
}}
|
}}
|
||||||
const updatedSettings = { ':auto_linker': { ':opts': { ':new_window': false }}}
|
const updatedSettings = { ':auto_linker': { ':opts': { ':new_window': false }}}
|
||||||
const description = [{
|
const description = [{
|
||||||
children: [
|
children: [
|
||||||
{ key: ":strip_prefix", type: "boolean" },
|
{ key: ':strip_prefix', type: 'boolean' },
|
||||||
{ key: ":truncate", type: ["integer", false] },
|
{ key: ':truncate', type: ['integer', false] },
|
||||||
{ key: ":new_window", type: "boolean" }],
|
{ key: ':new_window', type: 'boolean' }],
|
||||||
description: "Configuration for the auto_linker library",
|
description: 'Configuration for the auto_linker library',
|
||||||
group: ":auto_linker",
|
group: ':auto_linker',
|
||||||
key: ":opts",
|
key: ':opts',
|
||||||
label: "Opts",
|
label: 'Opts',
|
||||||
type: "group"
|
type: 'group'
|
||||||
}]
|
}]
|
||||||
|
|
||||||
const expectedData = { ':auto_linker': { ':opts': {
|
const expectedData = { ':auto_linker': { ':opts': {
|
||||||
':strip_prefix': ["boolean", true],
|
':strip_prefix': ['boolean', true],
|
||||||
':new_window': ["boolean", false],
|
':new_window': ['boolean', false],
|
||||||
':rel': ['', "ugc"],
|
':rel': ['', 'ugc'],
|
||||||
':truncate': [["integer", false], 3]
|
':truncate': [['integer', false], 3]
|
||||||
}}}
|
}}}
|
||||||
const updatedData = checkPartialUpdate(settings, updatedSettings, description)
|
const updatedData = checkPartialUpdate(settings, updatedSettings, description)
|
||||||
expect(_.isEqual(updatedData, expectedData)).toBeTruthy()
|
expect(_.isEqual(updatedData, expectedData)).toBeTruthy()
|
||||||
})
|
})
|
||||||
|
|
||||||
it('partial update for settings that allow partial update', () => {
|
it('partial update for settings that allow partial update', () => {
|
||||||
const settings = { ':pleroma': { 'Pleroma.Captcha': { ':enabled': true, ':seconds_valid': 70, ':method': "Pleroma.Captcha.Kocaptcha" }}}
|
const settings = { ':pleroma': { 'Pleroma.Captcha': { ':enabled': true, ':seconds_valid': 70, ':method': 'Pleroma.Captcha.Kocaptcha' }}}
|
||||||
const updatedSettings = { ':pleroma': { 'Pleroma.Captcha': { ':seconds_valid': ["integer", 70] }}}
|
const updatedSettings = { ':pleroma': { 'Pleroma.Captcha': { ':seconds_valid': ['integer', 70] }}}
|
||||||
const description = [{
|
const description = [{
|
||||||
children: [],
|
children: [],
|
||||||
description: "Captcha-related settings",
|
description: 'Captcha-related settings',
|
||||||
group: ":pleroma",
|
group: ':pleroma',
|
||||||
key: "Pleroma.Captcha",
|
key: 'Pleroma.Captcha',
|
||||||
label: "Pleroma.Captcha",
|
label: 'Pleroma.Captcha',
|
||||||
type: "group"
|
type: 'group'
|
||||||
}]
|
}]
|
||||||
|
|
||||||
const expectedData = { ':pleroma': { 'Pleroma.Captcha': { ':seconds_valid': ["integer", 70] }}}
|
const expectedData = { ':pleroma': { 'Pleroma.Captcha': { ':seconds_valid': ['integer', 70] }}}
|
||||||
const updatedData = checkPartialUpdate(settings, updatedSettings, description)
|
const updatedData = checkPartialUpdate(settings, updatedSettings, description)
|
||||||
expect(_.isEqual(updatedData, expectedData)).toBeTruthy()
|
expect(_.isEqual(updatedData, expectedData)).toBeTruthy()
|
||||||
})
|
})
|
||||||
|
|
42
test/modules/normalizers/wrapUpdatedSettings.test.js
Normal file
42
test/modules/normalizers/wrapUpdatedSettings.test.js
Normal file
|
@ -0,0 +1,42 @@
|
||||||
|
import { wrapUpdatedSettings } from '@/store/modules/normalizers'
|
||||||
|
import _ from 'lodash'
|
||||||
|
|
||||||
|
describe('Wrap settings', () => {
|
||||||
|
it('wraps values without keys with type atom', () => {
|
||||||
|
const settings = { ':level': { _value: ['atom', 'warn'] }}
|
||||||
|
const result = wrapUpdatedSettings(':quack', settings, {})
|
||||||
|
const expectedResult = [{ group: ':quack', key: ':level', value: ':warn' }]
|
||||||
|
expect(_.isEqual(result, expectedResult)).toBeTruthy()
|
||||||
|
})
|
||||||
|
|
||||||
|
it('wraps :backends setting in group :logger', () => {
|
||||||
|
const settings = { ':backends': { _value:
|
||||||
|
[['atom', 'tuple', 'module'], [':console', 'Quack.Logger', ':ex_syslogger']]
|
||||||
|
}}
|
||||||
|
const result = wrapUpdatedSettings(':logger', settings, {})
|
||||||
|
const expectedResult = [{
|
||||||
|
group: ':logger',
|
||||||
|
key: ':backends',
|
||||||
|
value: [':console', 'Quack.Logger', { 'tuple': ['ExSyslogger', ':ex_syslogger'] }]
|
||||||
|
}]
|
||||||
|
expect(_.isEqual(result, expectedResult)).toBeTruthy()
|
||||||
|
})
|
||||||
|
|
||||||
|
it('wraps :types setting in group :mime', () => {
|
||||||
|
const settings = { ':types': { _value: ['map', {
|
||||||
|
'application/ld+json': [['list', 'string'], ['activity+json']],
|
||||||
|
'application/xml': [['list', 'string'], ['xml']],
|
||||||
|
'application/xrd+xml': [['list', 'string'], ['xrd+xml']]
|
||||||
|
}]}}
|
||||||
|
const result = wrapUpdatedSettings(':mime', settings, {})
|
||||||
|
const expectedResult = [{
|
||||||
|
group: ':mime',
|
||||||
|
key: ':types', value: {
|
||||||
|
'application/ld+json': ['activity+json'],
|
||||||
|
'application/xml': ['xml'],
|
||||||
|
'application/xrd+xml': ['xrd+xml']
|
||||||
|
}
|
||||||
|
}]
|
||||||
|
expect(_.isEqual(result, expectedResult)).toBeTruthy()
|
||||||
|
})
|
||||||
|
})
|
Loading…
Reference in a new issue