diff --git a/test/modules/normalizers/checkPartialUpdate.test.js b/test/modules/normalizers/checkPartialUpdate.test.js index 62169c0f..87e6f104 100644 --- a/test/modules/normalizers/checkPartialUpdate.test.js +++ b/test/modules/normalizers/checkPartialUpdate.test.js @@ -4,44 +4,44 @@ import _ from 'lodash' describe('Partial update', () => { it('partial update for settings that do not allow partial update', () => { 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 description = [{ children: [ - { key: ":strip_prefix", type: "boolean" }, - { key: ":truncate", type: ["integer", false] }, - { key: ":new_window", type: "boolean" }], - description: "Configuration for the auto_linker library", - group: ":auto_linker", - key: ":opts", - label: "Opts", - type: "group" + { key: ':strip_prefix', type: 'boolean' }, + { key: ':truncate', type: ['integer', false] }, + { key: ':new_window', type: 'boolean' }], + description: 'Configuration for the auto_linker library', + group: ':auto_linker', + key: ':opts', + label: 'Opts', + type: 'group' }] const expectedData = { ':auto_linker': { ':opts': { - ':strip_prefix': ["boolean", true], - ':new_window': ["boolean", false], - ':rel': ['', "ugc"], - ':truncate': [["integer", false], 3] + ':strip_prefix': ['boolean', true], + ':new_window': ['boolean', false], + ':rel': ['', 'ugc'], + ':truncate': [['integer', false], 3] }}} const updatedData = checkPartialUpdate(settings, updatedSettings, description) expect(_.isEqual(updatedData, expectedData)).toBeTruthy() }) it('partial update for settings that allow partial update', () => { - const settings = { ':pleroma': { 'Pleroma.Captcha': { ':enabled': true, ':seconds_valid': 70, ':method': "Pleroma.Captcha.Kocaptcha" }}} - const updatedSettings = { ':pleroma': { 'Pleroma.Captcha': { ':seconds_valid': ["integer", 70] }}} + const settings = { ':pleroma': { 'Pleroma.Captcha': { ':enabled': true, ':seconds_valid': 70, ':method': 'Pleroma.Captcha.Kocaptcha' }}} + const updatedSettings = { ':pleroma': { 'Pleroma.Captcha': { ':seconds_valid': ['integer', 70] }}} const description = [{ children: [], - description: "Captcha-related settings", - group: ":pleroma", - key: "Pleroma.Captcha", - label: "Pleroma.Captcha", - type: "group" + description: 'Captcha-related settings', + group: ':pleroma', + key: 'Pleroma.Captcha', + label: 'Pleroma.Captcha', + 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) expect(_.isEqual(updatedData, expectedData)).toBeTruthy() }) diff --git a/test/modules/normalizers/wrapUpdatedSettings.test.js b/test/modules/normalizers/wrapUpdatedSettings.test.js new file mode 100644 index 00000000..9f815760 --- /dev/null +++ b/test/modules/normalizers/wrapUpdatedSettings.test.js @@ -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() + }) +})