File size: 2,313 Bytes
6f91ce5
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
import assert from 'node:assert/strict'
import { test } from 'node:test'
import { glanceIcon } from './glance.ts'
import { noteAuthor, pinOffset, plainText } from './notes.ts'

test('a note’s rich text reads as plain text, one paragraph per line', () => {
	const doc = {
		type: 'doc',
		content: [
			{ type: 'paragraph', content: [{ type: 'text', text: 'Could we sort ' }, { type: 'text', text: 'clusters', marks: [{ type: 'bold' }] }] },
			{ type: 'paragraph', content: [{ type: 'text', text: 'from our biopsies?' }, { type: 'hardBreak' }, { type: 'text', text: 'Ask Igor' }] },
			{ type: 'paragraph' },
		],
	}
	assert.equal(plainText(doc), 'Could we sort clusters\nfrom our biopsies?\nAsk Igor')
	assert.equal(plainText({ type: 'doc', content: [{ type: 'paragraph' }] }), '')
	assert.equal(plainText(undefined), '')
})

test('note authors: you, the agent, or unknown', () => {
	assert.equal(noteAuthor({ author: 'm_me' }, 'm_me'), 'You')
	assert.equal(noteAuthor({ createdBy: 'agent', onBehalfOf: 'm_me' }, 'm_me'), 'Agent')
	assert.equal(noteAuthor({ author: 'm_other' }, 'm_me'), null)
	assert.equal(noteAuthor(undefined, 'm_me'), null)
})

test('pinned notes go 20 px right of the card, a little below its middle, each next one lower', () => {
	// a 48 px node's drawn card has its right edge at node.x + 24 + 86 = node.x + 110
	assert.deepEqual(pinOffset({ w: 48, h: 48 }, 0), { dx: 130, dy: 36 })
	assert.deepEqual(pinOffset({ w: 48, h: 48 }, 2), { dx: 130, dy: 104 })
	// the same place seedDemo.ts pins the demo note: n1.w / 2 + 106, n1.w / 2 + 12
	assert.deepEqual(pinOffset({ w: 60, h: 60 }, 0), { dx: 60 / 2 + 106, dy: 60 / 2 + 12 })
})

test('glance steps get an icon from their label', () => {
	assert.equal(glanceIcon('Samples'), 'samples')
	assert.equal(glanceIcon('Tested on'), 'samples')
	assert.equal(glanceIcon('Model'), 'samples')
	assert.equal(glanceIcon('Method'), 'method')
	assert.equal(glanceIcon('Methods reviewed'), 'method')
	assert.equal(glanceIcon('Readout'), 'readout')
	assert.equal(glanceIcon('Compares'), 'compare')
	assert.equal(glanceIcon('Checked in patients'), 'check')
	assert.equal(glanceIcon('Covers'), 'scope')
	assert.equal(glanceIcon('Finding'), 'finding')
	assert.equal(glanceIcon('Offers'), 'finding')
	assert.equal(glanceIcon('Something else'), 'method')
})