import { haveText, html, test } from '../utils'
test('can register custom interceptors',
[html`
`,
`
Alpine.magic('magic', () => {
return Alpine.interceptor((initialValue, getter, setter, path, key) => {
return key+path
})
})
`],
({ get }) => get('span').should(haveText('foofoo'))
)
test('interceptors are nesting aware',
[html`
`,
`
Alpine.magic('magic', () => {
return Alpine.interceptor((initialValue, getter, setter, path, key) => {
return key+path
})
})
`],
({ get }) => get('span').should(haveText('bazfoo.bar.baz'))
)
test('interceptor system prevents against circular references',
[html`
`,
`
Alpine.magic('foo', () => {
return {
get anyGivenProperty() {
return this
}
}
})
`],
({ get }) => get('span').should(haveText('...'))
)