{"version":3,"file":"check-all-affected-by.test.mjs","sources":["../../../../../src/_common/test/unit/tree-v1/check-all-affected-by.test.ts"],"sourcesContent":["import { describe, expect, it } from 'vitest';\nimport TreeStore from '../../../js/tree-v1/tree-store';\nimport type { TypeTreeStoreOptions } from '../../../js/tree-v1/types';\n\nconst data = [{ value: 'P', children: [{ value: 'A' }, { value: 'B' }, { value: 'D', disabled: true }] }];\n\nfunction createStore(options: TypeTreeStoreOptions = {}) {\n  const store = new TreeStore({ checkable: true, valueMode: 'parentFirst', ...options });\n  store.append(data);\n  store.refreshNodes();\n  return store;\n}\n\ndescribe('tree-v1 checkAllAffectedBy', () => {\n  it('defaults to onlyEnabled to preserve the current parent state behavior', () => {\n    const store = createStore();\n    expect(store.config.checkAllAffectedBy).toBe('onlyEnabled');\n    store.setChecked(['A', 'B']);\n    expect(store.getNode('P').isChecked()).toBe(true);\n    expect(store.getNode('D').isChecked()).toBe(false);\n    expect(store.getChecked()).toEqual(['P']);\n  });\n\n  (['all', 'onlyEnabled'] as const).forEach((scope) => {\n    it.each(['all', 'parentFirst', 'onlyLeaf'] as const)(\n      `${scope} preserves disabled state during a controlled %s round trip`,\n      (valueMode) => {\n        const store = createStore({ checkAllAffectedBy: scope, valueMode });\n        const parent = store.getNode('P');\n        const values = parent.toggleChecked();\n        const expected =\n          scope === 'onlyEnabled'\n            ? { all: ['P', 'A', 'B'], parentFirst: ['P'], onlyLeaf: ['A', 'B'] }[valueMode]\n            : ['A', 'B'];\n        expect(values).toEqual(expected);\n        store.replaceChecked(values);\n        expect(parent.isChecked()).toBe(scope === 'onlyEnabled');\n        expect(parent.isIndeterminate()).toBe(scope === 'all');\n        expect(store.getNode('D').isChecked()).toBe(false);\n        const cleared = parent.toggleChecked();\n        expect(cleared).toEqual([]);\n        store.replaceChecked(cleared);\n        expect(parent.isChecked()).toBe(false);\n        expect(parent.isIndeterminate()).toBe(false);\n      }\n    );\n\n    it(`${scope} does not affect strict selection`, () => {\n      const store = createStore({ checkAllAffectedBy: scope, checkStrictly: true });\n      store.setChecked(['A', 'B']);\n      expect(store.getNode('P').isChecked()).toBe(false);\n      expect(store.getNode('P').isIndeterminate()).toBe(false);\n      expect(store.getNode('P').toggleChecked()).toEqual(['P', 'A', 'B']);\n    });\n  });\n\n  it('recalculates loaded parents on strategy changes without selecting disabled children', () => {\n    const store = createStore({ checkAllAffectedBy: 'onlyEnabled' });\n    store.setChecked(['A', 'B']);\n    const parent = store.getNode('P');\n    store.refreshState();\n    expect(parent.checked).toBe(true);\n    store.setConfig({ checkAllAffectedBy: 'all' });\n    expect(parent.checked).toBe(false);\n    expect(parent.indeterminate).toBe(true);\n    expect(store.getNode('D').isChecked()).toBe(false);\n    expect(store.getChecked()).toEqual(['A', 'B']);\n    store.setConfig({ checkAllAffectedBy: 'onlyEnabled' });\n    expect(parent.checked).toBe(true);\n    expect(parent.indeterminate).toBe(false);\n    expect(store.getNode('D').isChecked()).toBe(false);\n  });\n\n  it('onlyEnabled retains explicitly selected disabled values when parentFirst collapses enabled children', () => {\n    const store = createStore({ checkAllAffectedBy: 'onlyEnabled' });\n    store.setChecked(['D']);\n    const parent = store.getNode('P');\n    const selected = parent.toggleChecked();\n    expect(selected).toEqual(['P', 'D']);\n    store.replaceChecked(selected);\n    expect(store.getNode('D').isChecked()).toBe(true);\n    const cleared = parent.toggleChecked();\n    expect(cleared).toEqual(['D']);\n    store.replaceChecked(cleared);\n    expect(store.getNode('D').isChecked()).toBe(true);\n  });\n\n  it('does not derive a state in onlyEnabled when every child is disabled', () => {\n    const store = new TreeStore({ checkable: true, checkAllAffectedBy: 'onlyEnabled' });\n    store.append([{ value: 'P', children: [{ value: 'D', disabled: true }] }]);\n    store.refreshNodes();\n    store.setChecked(['D']);\n    expect(store.getNode('P').isChecked()).toBe(false);\n    expect(store.getNode('P').isIndeterminate()).toBe(false);\n    expect(store.getNode('D').isChecked()).toBe(true);\n    store.setConfig({ checkAllAffectedBy: 'all' });\n    expect(store.getNode('P').isChecked()).toBe(true);\n    expect(store.getNode('D').isChecked()).toBe(true);\n  });\n});\n"],"names":["data","value","children","disabled","createStore","options","arguments","length","undefined","store","TreeStore","_objectSpread","checkable","valueMode","append","refreshNodes","describe","it","expect","config","checkAllAffectedBy","toBe","setChecked","getNode","isChecked","getChecked","toEqual","forEach","scope","each","concat","parent","values","toggleChecked","expected","all","parentFirst","onlyLeaf","replaceChecked","isIndeterminate","cleared","checkStrictly","refreshState","checked","setConfig","indeterminate","selected"],"mappings":"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"}