Tickets: ticketPath, Listenzustand in der URL (Reiter, Art, Dringend, Suche, limit), woid-Umleitung, Zeilenklick-Helfer
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
1 parent
f3b73ca1dd
commit
54fc44ed11
7 files changed
+249
-1
No files matched your search
@@ -0,0 +1,36 @@
|
||||
import test from 'node:test'
|
||||
import assert from 'node:assert/strict'
|
||||
import { loadModule } from './load.mjs'
|
||||
|
||||
const { isRowActivation } = await loadModule('src/lib/rowClick.js')
|
||||
|
||||
const TAGS = ['a', 'button', 'select', 'input', 'textarea', 'label']
|
||||
|
||||
// Ereignis ohne DOM: closest liefert nur dann einen Treffer, wenn der Selektor das Tag nennt
|
||||
function click({ target = 'td', outside = false, ...over } = {}) {
|
||||
const row = { contains: (el) => el?.inRow === true }
|
||||
const hit = TAGS.includes(target) ? { inRow: !outside } : null
|
||||
return {
|
||||
target: { closest: (sel) => (hit && sel.split(',').map((s) => s.trim()).includes(target) ? hit : null) },
|
||||
currentTarget: row, button: 0, defaultPrevented: false, metaKey: false, ctrlKey: false, shiftKey: false, altKey: false, ...over,
|
||||
}
|
||||
}
|
||||
|
||||
test('Linksklick auf Zelle oder Zeile aktiviert die Zeile', () => {
|
||||
assert.equal(isRowActivation(click()), true)
|
||||
assert.equal(isRowActivation(click({ target: 'tr' })), true)
|
||||
})
|
||||
|
||||
test('Klick auf a, button, select, input, textarea oder label aktiviert nicht', () => {
|
||||
for (const tag of TAGS) assert.equal(isRowActivation(click({ target: tag })), false, tag)
|
||||
})
|
||||
|
||||
test('Mittelklick, Modifikatortasten und behandelte Klicks aktivieren nicht', () => {
|
||||
assert.equal(isRowActivation(click({ button: 1 })), false)
|
||||
for (const key of ['metaKey', 'ctrlKey', 'shiftKey', 'altKey']) assert.equal(isRowActivation(click({ [key]: true })), false, key)
|
||||
assert.equal(isRowActivation(click({ defaultPrevented: true })), false)
|
||||
})
|
||||
|
||||
test('ein interaktiver Vorfahre außerhalb der Zeile zählt nicht', () => {
|
||||
assert.equal(isRowActivation(click({ target: 'label', outside: true })), true)
|
||||
})
|
||||
Reference in new issue
Block a user