{"version":3,"file":"check-all-affected-by.test.mjs","sources":["../../../../../src/_common/test/unit/tree/check-all-affected-by.test.ts"],"sourcesContent":["import { describe, expect, it } from 'vitest';\nimport TreeStore from '../../../js/tree/tree-store';\n\nconst modes = ['all', 'parentFirst', 'onlyLeaf'] as const;\nconst scopes = ['all', 'onlyEnabled'] as const;\nconst data = [{ value: 'P', children: [{ value: 'A' }, { value: 'B' }, { value: 'D', disabled: true }] }];\n\ndescribe('tree checkAllAffectedBy', () => {\n  scopes.forEach((checkAllAffectedBy) => {\n    it.each(modes)(`${checkAllAffectedBy} computes the parent from child states in %s mode`, (valueMode) => {\n      const tree = new TreeStore({ checkable: true, valueMode, checkAllAffectedBy });\n      tree.append(data);\n      const parent = tree.getNode('P');\n      tree.setChecked(['A', 'B']);\n      expect(parent.checked).toBe(checkAllAffectedBy === 'onlyEnabled');\n      expect(parent.indeterminate).toBe(checkAllAffectedBy === 'all');\n      expect(tree.getNode('D').checked).toBe(false);\n      tree.replaceChecked(parent.toggleChecked());\n      expect(tree.getChecked()).toEqual([]);\n      expect(parent.checked).toBe(false);\n      expect(parent.indeterminate).toBe(false);\n    });\n\n    it.each(modes)(\n      `${checkAllAffectedBy} preserves disabled selections after parent cancellation in %s mode`,\n      (valueMode) => {\n        const tree = new TreeStore({ checkable: true, valueMode, checkAllAffectedBy });\n        tree.append(data);\n        tree.setChecked(['D']);\n        const parent = tree.getNode('P');\n        expect(parent.indeterminate).toBe(checkAllAffectedBy === 'all');\n        tree.replaceChecked(parent.toggleChecked());\n        expect(parent.checked).toBe(true);\n        tree.replaceChecked(parent.toggleChecked());\n        expect(tree.getChecked()).toEqual(['D']);\n        expect(tree.getNode('D').checked).toBe(true);\n        expect(parent.indeterminate).toBe(checkAllAffectedBy === 'all');\n      }\n    );\n  });\n\n  it.each(modes)('invalidates cached parent states when switching the scope in %s mode', (valueMode) => {\n    const tree = new TreeStore({ checkable: true, valueMode, checkAllAffectedBy: 'onlyEnabled' });\n    tree.append(data);\n    tree.setChecked(['A', 'B']);\n    const parent = tree.getNode('P');\n    expect(parent.checked).toBe(true);\n    tree.setConfig({ checkAllAffectedBy: 'all' });\n    expect(parent.checked).toBe(false);\n    expect(parent.indeterminate).toBe(true);\n    expect(tree.getChecked()).toEqual(['A', 'B']);\n    tree.setConfig({ checkAllAffectedBy: 'onlyEnabled' });\n    expect(parent.checked).toBe(true);\n    expect(parent.indeterminate).toBe(false);\n    expect(tree.getNode('D').checked).toBe(false);\n  });\n\n  it('preserves the existing default for consumers that do not pass the new option', () => {\n    const tree = new TreeStore({ checkable: true });\n    tree.append(data);\n    tree.setChecked(['A', 'B']);\n    expect(tree.getNode('P').checked).toBe(true);\n  });\n});\n"],"names":["modes","scopes","data","value","children","disabled","describe","forEach","checkAllAffectedBy","it","each","concat","valueMode","tree","TreeStore","checkable","append","parent","getNode","setChecked","expect","checked","toBe","indeterminate","replaceChecked","toggleChecked","getChecked","toEqual","setConfig"],"mappings":"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"}