1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93
|
describe('__parseSwapSpec unit tests', function() {
it('parses basic swap styles', function () {
assert.equal(htmx.__parseSwapSpec('innerHTML').style, 'innerHTML')
assert.equal(htmx.__parseSwapSpec('outerHTML').style, 'outerHTML')
assert.equal(htmx.__parseSwapSpec('beforebegin').style, 'beforebegin')
assert.equal(htmx.__parseSwapSpec('afterbegin').style, 'afterbegin')
assert.equal(htmx.__parseSwapSpec('beforeend').style, 'beforeend')
assert.equal(htmx.__parseSwapSpec('afterend').style, 'afterend')
})
it('normalizes legacy swap styles', function () {
assert.equal(htmx.__parseSwapSpec('prepend').style, 'afterbegin')
assert.equal(htmx.__parseSwapSpec('append').style, 'beforeend')
assert.equal(htmx.__parseSwapSpec('before').style, 'beforebegin')
assert.equal(htmx.__parseSwapSpec('after').style, 'afterend')
})
it('parses swap delay modifier', function () {
let spec = htmx.__parseSwapSpec('innerHTML swap:100ms')
assert.equal(spec.style, 'innerHTML')
assert.equal(spec.swap, '100ms')
})
it('parses transition modifier', function () {
assert.equal(htmx.__parseSwapSpec('innerHTML transition:true').transition, true)
assert.equal(htmx.__parseSwapSpec('innerHTML transition:false').transition, false)
})
it('parses ignoreTitle modifier', function () {
assert.equal(htmx.__parseSwapSpec('innerHTML ignoreTitle:true').ignoreTitle, true)
assert.equal(htmx.__parseSwapSpec('innerHTML ignoreTitle:false').ignoreTitle, false)
})
it('parses strip modifier', function () {
assert.equal(htmx.__parseSwapSpec('innerHTML strip:true').strip, true)
assert.equal(htmx.__parseSwapSpec('innerHTML strip:false').strip, false)
})
it('parses focus-scroll modifier', function () {
assert.equal(htmx.__parseSwapSpec('innerHTML focus-scroll:true')['focus-scroll'], true)
assert.equal(htmx.__parseSwapSpec('innerHTML focus-scroll:false')['focus-scroll'], false)
})
it('parses scroll modifier', function () {
assert.equal(htmx.__parseSwapSpec('innerHTML scroll:top').scroll, 'top')
assert.equal(htmx.__parseSwapSpec('innerHTML scroll:bottom').scroll, 'bottom')
})
it('parses show modifier', function () {
assert.equal(htmx.__parseSwapSpec('innerHTML show:top').show, 'top')
assert.equal(htmx.__parseSwapSpec('innerHTML show:bottom').show, 'bottom')
})
it('parses target modifier', function () {
assert.equal(htmx.__parseSwapSpec('innerHTML target:#foo').target, '#foo')
})
it('parses target with spaces', function () {
assert.equal(htmx.__parseSwapSpec('innerHTML target:"#foo .bar"').target, '#foo .bar')
})
it('parses scroll with scrollTarget', function () {
let spec = htmx.__parseSwapSpec('innerHTML scroll:top scrollTarget:#container')
assert.equal(spec.scroll, 'top')
assert.equal(spec.scrollTarget, '#container')
})
it('parses show with showTarget', function () {
let spec = htmx.__parseSwapSpec('innerHTML show:bottom showTarget:.content')
assert.equal(spec.show, 'bottom')
assert.equal(spec.showTarget, '.content')
})
it('parses multiple modifiers', function () {
let spec = htmx.__parseSwapSpec('innerHTML swap:100ms transition:true')
assert.equal(spec.style, 'innerHTML')
assert.equal(spec.swap, '100ms')
assert.equal(spec.transition, true)
})
it('uses default swap when empty', function () {
let spec = htmx.__parseSwapSpec('')
assert.equal(spec.style, htmx.config.defaultSwap)
})
it('parses legacy style names with modifiers', function () {
let spec = htmx.__parseSwapSpec('prepend swap:10ms')
assert.equal(spec.style, 'afterbegin')
assert.equal(spec.swap, '10ms')
})
});
|