import { haveText, html, test } from '../utils' test('can register custom directive', [html`
`, ` Alpine.directive('foo', (el, { value, modifiers, expression }) => { el.textContent = value+modifiers+expression }) `], ({ get }) => get('span').should(haveText('barbazbob')) ) test('directives are auto cleaned up', [html`

`, ` Alpine.directive('foo', (el, {}, { effect, cleanup, evaluateLater }) => { let evaluate = evaluateLater('foo') let incCount = evaluateLater('count++') cleanup(() => { incCount() incCount() }) effect(() => { incCount() evaluate(value => el.textContent = value) }) }) `], ({ get }) => { get('h1').should(haveText('1')) get('#change').click() get('h1').should(haveText('3')) get('#remove').click() get('#change').click() get('h1').should(haveText('6')) get('#change').click() get('h1').should(haveText('7')) } )