@things-factory/organization 10.1.185 → 10.1.188

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@things-factory/organization",
3
- "version": "10.1.185",
3
+ "version": "10.1.188",
4
4
  "main": "dist-server/index.js",
5
5
  "browser": "dist-client/index.js",
6
6
  "things-factory": true,
@@ -36,10 +36,10 @@
36
36
  "@operato/p13n": "^10.0.0",
37
37
  "@operato/popup": "^10.15.0",
38
38
  "@operato/shell": "^10.0.0",
39
- "@things-factory/auth-base": "^10.1.183",
40
- "@things-factory/code-ui": "^10.1.183",
41
- "@things-factory/contact": "^10.1.183",
42
- "@things-factory/shell": "^10.1.179"
39
+ "@things-factory/auth-base": "^10.1.188",
40
+ "@things-factory/code-ui": "^10.1.188",
41
+ "@things-factory/contact": "^10.1.188",
42
+ "@things-factory/shell": "^10.1.188"
43
43
  },
44
- "gitHead": "3cfe5c959e7e82d772f46fd280037900fa89fcaa"
44
+ "gitHead": "c5e75e2e0b565e0666472bc835f5f1538fb18f48"
45
45
  }
@@ -0,0 +1,35 @@
1
+ import { readFileSync } from 'fs'
2
+ import path from 'path'
3
+
4
+ /**
5
+ * approval-line-brief draws a request on its way: whose turn it is and what is behind it. Left
6
+ * without `current` it marks the submitter's turn, which the instance ribbon relies on for a draft.
7
+ *
8
+ * The activity catalog draws a form's line as it is set, with nobody's turn in it (2026-10-18). `plan`
9
+ * is that mode: no seat is current, none is past, and every seat reads at ink colour. A copy of this
10
+ * component in worklist would have been the third drawing of a line; a mode on the one drawing is not.
11
+ */
12
+
13
+ const source = readFileSync(path.join(__dirname, '../client/component/approval-line-brief.ts'), 'utf-8')
14
+
15
+ describe('approval-line-brief in plan mode', () => {
16
+ it('declares plan as a reflected boolean, so the style can see it', () => {
17
+ expect(source).toMatch(/@property\(\{ type: Boolean, reflect: true \}\) plan: boolean = false/)
18
+ })
19
+
20
+ it('marks no seat current or past - the submitter included', () => {
21
+ const marks = source.match(/\?(current|past)=\$\{[^}]*\}/g) || []
22
+
23
+ expect(marks).toHaveLength(4)
24
+ expect(marks.filter(mark => !mark.includes('!this.plan &&'))).toEqual([])
25
+ })
26
+
27
+ it('keeps the old reading when plan is not set: no current means the submitter\'s turn', () => {
28
+ expect(source).toMatch(/\?current=\$\{!this\.plan && this\.current <= 0\}/)
29
+ expect(source).toMatch(/@property\(\{ type: Number \}\) current: number = -1/)
30
+ })
31
+
32
+ it('draws every seat at ink colour in plan mode', () => {
33
+ expect(source).toMatch(/:host\(\[plan\]\) li \{\s*color: var\(--ui-ink/)
34
+ })
35
+ })