parcoursup/node_modules/@riotjs/hot-reload/test/index.js
lalBi94 7bc56c09b5 $
2023-03-05 13:23:23 +01:00

74 lines
1.6 KiB
JavaScript

import {__, component} from 'riot'
import {expect} from 'chai'
import hotReload from '../'
import jsDOMGlobal from 'jsdom-global'
describe('core', () => {
before(() => {
jsDOMGlobal()
})
it('riot.reload keeps the tags state', (done) => {
const api = {
name: 'timer',
exports: {
state: {
count: 0
},
onBeforeMount() {
this.interval = setInterval(() => {
this.state.count ++
}, 100)
},
onUnmounted() {
clearInterval(this.interval)
}
}
}
const div = document.createElement('div')
document.body.appendChild(div)
component(api)(div)
setTimeout(function() {
const el = hotReload(api)[0]
expect(el.state.count).to.be.equal(2)
el.unmount()
done()
}, 210)
})
it('riot.reload will reload the css properly', () => {
const api = {
name: 'css-demo',
css: ':host { color: rgb(255, 255, 255); }'
}
const div = document.createElement('div')
document.body.appendChild(div)
component(api)(div)
expect(__.cssManager.CSS_BY_NAME.get('css-demo')).to.match(/rgb\(255, 255, 255\)/)
hotReload({
name: 'css-demo',
css: ':host { color: rgb(0, 0, 0); }'
})
expect(__.cssManager.CSS_BY_NAME.get('css-demo')).to.match(/rgb\(0, 0, 0\)/)
})
it('components not compatible with riot will be ignored', () => {
const div = document.createElement('div')
document.body.appendChild(div)
div.setAttribute('is', 'not-riot')
expect(() => hotReload({
name: 'not-riot'
})).to.not.throw()
})
})