+5
-2
@@ -59,9 +59,11 @@ test('brand icons ship as SVG marks with gold visor and cyan core', () => {
|
||||
|
||||
test('HUD, settings, and launcher consume the brand package', () => {
|
||||
assert.match(stylesheet, /--jarvis-accent/);
|
||||
assert.match(stylesheet, /--jarvis-signal: #4FD2FF/);
|
||||
assert.doesNotMatch(stylesheet, /alpha\(/);
|
||||
assert.doesNotMatch(stylesheet, /icon-size:/);
|
||||
assert.doesNotMatch(stylesheet, /\/\*/);
|
||||
assert.match(stylesheet, /\.jarvis-panel-mark/);
|
||||
assert.match(stylesheet, /\.jarvis-talk \{ background-color: var\(--jarvis-accent/);
|
||||
assert.match(stylesheet, /\.jarvis-talk \{ background-color: #F4B942/);
|
||||
assert.match(gtkCss, /@define-color jarvis_gold #F4B942/);
|
||||
assert.match(gtkCss, /button\.jarvis-swatch-gold/);
|
||||
assert.equal(metadata.name, 'Jarvis');
|
||||
@@ -70,6 +72,7 @@ test('HUD, settings, and launcher consume the brand package', () => {
|
||||
assert.match(settingsWindow, /brandBanner/);
|
||||
assert.match(settingsWindow, /BRAND\.publisher/);
|
||||
assert.match(settingsWindow, /accentRow/);
|
||||
assert.doesNotMatch(settingsWindow, /maxlength/);
|
||||
assert.match(extensionSource, /brand\/icons\/jarvis-mark\.svg/);
|
||||
assert.match(extensionSource, /text: 'Jarvis'/);
|
||||
assert.match(install, /io\.qvac\.Jarvis\.Control\.desktop/);
|
||||
|
||||
@@ -233,7 +233,9 @@ test('GNOME GI imports expose default namespaces and panel has a real menu', ()
|
||||
assert.match(extensionSource, /_openPopup/);
|
||||
assert.match(uiSource, /Open conversation/);
|
||||
assert.match(extensionSource, /PopupMenuSection/);
|
||||
assert.match(extensionSource, /osd\.attach\(this\._panelBox\)/);
|
||||
assert.match(extensionSource, /import Pango from 'gi:\/\/Pango'/);
|
||||
assert.match(extensionSource, /ellipsize = Pango\.EllipsizeMode\.NONE/);
|
||||
assert.match(extensionSource, /osd\.attach\(this\._panelBox, this\._glyph\)/);
|
||||
assert.match(extensionSource, /jarvis-panel-mark/);
|
||||
assert.match(extensionSource, /brand\/icons\/jarvis-mark\.svg/);
|
||||
assert.match(uiSource, /jarvis-panel-state/);
|
||||
@@ -274,12 +276,14 @@ test('lazy ASR still shows the microphone as available when capture is up', () =
|
||||
const { ConversationView } = harness();
|
||||
const popup = new ConversationView({ compact: true });
|
||||
popup.setVoiceStatus({ tts: true, input: true, wake: true });
|
||||
assert.match(popup.status.text, /SPEECH ON/);
|
||||
assert.match(popup.status.text, /WAKE ON/);
|
||||
assert.doesNotMatch(popup.status.text, /MIC UNAVAILABLE/);
|
||||
assert.equal(popup.status.text, 'Local');
|
||||
assert.match(popup.statusLine.text, /speech on/);
|
||||
assert.match(popup.statusLine.text, /wake on/);
|
||||
assert.doesNotMatch(popup.status.style_class, /jarvis-state-/);
|
||||
assert.equal(popup.talk.label, 'Hold to talk');
|
||||
popup.setVoiceStatus({ tts: false, input: false, wake: false });
|
||||
assert.match(popup.status.text, /MIC UNAVAILABLE/);
|
||||
assert.match(popup.status.text, /Mic off/);
|
||||
assert.match(popup.statusLine.text, /mic off/);
|
||||
assert.equal(popup.talk.label, 'Mic unavailable');
|
||||
assert.match(extensionSource, /Boolean\(voice\.capture\)/);
|
||||
assert.doesNotMatch(extensionSource, /voice\.asr && voice\.capture/);
|
||||
@@ -289,22 +293,27 @@ test('voice status lives in the panel chip, not a floating overlay', () => {
|
||||
const { JarvisOsd, SessionPanel, timers, chrome } = harness();
|
||||
const osd = new JarvisOsd();
|
||||
const session = new SessionPanel();
|
||||
const name = { visible: true };
|
||||
const bar = { children: [], add_child(child) { this.children.push(child); } };
|
||||
osd.attach(bar);
|
||||
osd.attach(bar, name);
|
||||
session.attach();
|
||||
assert.equal(bar.children[0], osd.root);
|
||||
osd.setState('LISTENING');
|
||||
assert.equal(osd.root.visible, true);
|
||||
assert.equal(name.visible, false);
|
||||
assert.match(osd.label.text, /Listening/);
|
||||
assert.equal(session.root.visible, false);
|
||||
osd.setState('ARMED');
|
||||
assert.equal(osd.root.visible, false);
|
||||
assert.equal(name.visible, true);
|
||||
osd.setState('SPEAKING');
|
||||
assert.equal(osd.root.visible, true);
|
||||
assert.equal(name.visible, false);
|
||||
assert.match(osd.label.text, /Speaking/);
|
||||
assert.equal(timers.size, 0);
|
||||
osd.setState('THINKING');
|
||||
assert.match(osd.label.text, /Thinking/);
|
||||
assert.equal(name.visible, false);
|
||||
osd.setState('SLEEPING');
|
||||
assert.match(osd.label.text, /Privacy/);
|
||||
osd.showWake();
|
||||
|
||||
Reference in New Issue
Block a user