feat: publish HoloLake model-native living system source
This commit is contained in:
parent
6ad10edde1
commit
c395dd3a99
2467 changed files with 615073 additions and 0 deletions
|
|
@ -0,0 +1,54 @@
|
|||
import { describe, expect, it } from 'vitest'
|
||||
import {
|
||||
extractSheetExternalCellReferences,
|
||||
extractSheetExternalFrontmatterReferences,
|
||||
extractSheetExternalReferenceTargets,
|
||||
hasSheetExternalFrontmatterReferences,
|
||||
isExternalFormulaInput,
|
||||
shiftExternalFormulaReferences,
|
||||
} from './sheetExternalReferences'
|
||||
|
||||
describe('sheetExternalReferences', () => {
|
||||
it('detects formula inputs with sheet wikilink cell references', () => {
|
||||
expect(isExternalFormulaInput('=[[revenue]].B2')).toBe(true)
|
||||
expect(isExternalFormulaInput('=[[device]].power.watts')).toBe(true)
|
||||
expect(isExternalFormulaInput(' [[revenue]].B2')).toBe(false)
|
||||
expect(isExternalFormulaInput('[[revenue]].B2')).toBe(false)
|
||||
})
|
||||
|
||||
it('extracts canonical targets and A1 addresses', () => {
|
||||
expect(extractSheetExternalCellReferences('=[[folder/revenue|Revenue]].$B$12+[[costs]].C3')).toEqual([
|
||||
{ address: 'B12', target: 'folder/revenue' },
|
||||
{ address: 'C3', target: 'costs' },
|
||||
])
|
||||
})
|
||||
|
||||
it('extracts canonical targets and frontmatter property paths', () => {
|
||||
expect(extractSheetExternalFrontmatterReferences('=[[device.md]].power.watts+[[project-alpha|Project]].status')).toEqual([
|
||||
{ path: ['power', 'watts'], propertyPath: 'power.watts', target: 'device.md' },
|
||||
{ path: ['status'], propertyPath: 'status', target: 'project-alpha' },
|
||||
])
|
||||
})
|
||||
|
||||
it('keeps cell references out of frontmatter property extraction', () => {
|
||||
expect(hasSheetExternalFrontmatterReferences({ value: '=[[revenue]].B2+[[revenue]].$B$2' })).toBe(false)
|
||||
expect(extractSheetExternalReferenceTargets('=[[device]].power.watts+[[revenue]].B2')).toEqual([
|
||||
'revenue',
|
||||
'device',
|
||||
])
|
||||
})
|
||||
|
||||
it('shifts relative references while preserving absolute row and column markers', () => {
|
||||
expect(shiftExternalFormulaReferences('=[[revenue]].B2+[[revenue]].$C$3+[[revenue]].D$4+[[revenue]].$E5', 2, 1))
|
||||
.toBe('=[[revenue]].C4+[[revenue]].$C$3+[[revenue]].E$4+[[revenue]].$E7')
|
||||
})
|
||||
|
||||
it('leaves frontmatter property references unchanged when shifting formulas', () => {
|
||||
expect(shiftExternalFormulaReferences('=[[device]].power.watts+[[revenue]].B2', 2, 1))
|
||||
.toBe('=[[device]].power.watts+[[revenue]].C4')
|
||||
})
|
||||
|
||||
it('leaves references unchanged when a relative shift would leave the sheet bounds', () => {
|
||||
expect(shiftExternalFormulaReferences('=[[revenue]].A1', -1, 0)).toBe('=[[revenue]].A1')
|
||||
})
|
||||
})
|
||||
Loading…
Reference in a new issue