import { haveText, html, test } from '../../utils' test('basic drag sorting works', [html`
`], async ({ get }) => { get('ul li').eq(0).should(haveText('foo')) get('ul li').eq(1).should(haveText('bar')) get('ul li').eq(2).should(haveText('baz')) await get('#1').drag('#3') get('ul li').eq(0).should(haveText('bar')) get('ul li').eq(1).should(haveText('baz')) get('ul li').eq(2).should(haveText('foo')) await get('#3').drag('#1') get('ul li').eq(0).should(haveText('bar')) get('ul li').eq(1).should(haveText('foo')) get('ul li').eq(2).should(haveText('baz')) }, ) test('can use a custom handle', [html`
`], async ({ get }) => { get('ul li').eq(0).should(haveText('handle - foo')) get('ul li').eq(1).should(haveText('handle - bar')) await get('#1 span').drag('#2') get('ul li').eq(0).should(haveText('handle - bar')) get('ul li').eq(1).should(haveText('handle - foo')) }, ) test('can move items between groups', [html`
  1. oof
  2. rab
`], async ({ get }) => { get('ul li').eq(0).should(haveText('foo')) get('ul li').eq(1).should(haveText('bar')) get('ol li').eq(0).should(haveText('oof')) get('ol li').eq(1).should(haveText('rab')) await get('#1').drag('#4') get('ul li').eq(0).should(haveText('bar')) get('ol li').eq(0).should(haveText('oof')) get('ol li').eq(1).should(haveText('foo')) get('ol li').eq(2).should(haveText('rab')) }, ) test('sort handle method', [html`

`], async ({ get }) => { await get('#1').drag('#3') get('h1').should(haveText('1-2')) await get('#3').drag('#1') get('h1').should(haveText('3-2')) }, ) test('can access key and position in handler', [html`

`], async ({ get }) => { await get('#1').drag('#3') get('h1').should(haveText('2-1')) await get('#3').drag('#1') get('h1').should(haveText('2-3')) }, ) test('can use custom sortablejs configuration', [html`
`], async ({ get }) => { get('ul li').eq(0).should(haveText('foo')) get('ul li').eq(1).should(haveText('bar')) get('ul li').eq(2).should(haveText('baz')) await get('#1').drag('#3') get('ul li').eq(0).should(haveText('foo')) get('ul li').eq(1).should(haveText('bar')) get('ul li').eq(2).should(haveText('baz')) await get('#3').drag('#1') get('ul li').eq(0).should(haveText('baz')) get('ul li').eq(1).should(haveText('foo')) get('ul li').eq(2).should(haveText('bar')) }, ) test('works with Livewire morphing', [html`
`], async ({ get }) => { await get('#1').drag('#3') // This is the easiest way I can think of to assert the order of HTML comments doesn't change... get('ul').should('have.html', `\n \n \n
  • bar
  • \n
  • baz
  • \n \n
  • foo
  • `) }, )