33 lines
1.7 KiB
JavaScript
33 lines
1.7 KiB
JavaScript
'use strict';
|
|
|
|
const fs = require('node:fs');
|
|
const assert = require('node:assert/strict');
|
|
const bootstrap = require('../../dockerfiles/hermes-webui-hux/bootstrap.js');
|
|
const modes = require('../../dockerfiles/hermes-webui-hux/runtime/wave_b_projects_modes.js');
|
|
const waveC = require('../../dockerfiles/hermes-webui-hux/runtime/wave_c_multimodal_onboarding_release.js');
|
|
|
|
const data = JSON.parse(fs.readFileSync(0, 'utf8'));
|
|
const session = {session_id: data.rawSessionId, hux_context: data.context};
|
|
const context = bootstrap.normalizeContext(session);
|
|
assert.ok(context, 'real backend scope must remain a valid browser context');
|
|
assert.ok(bootstrap.normalizeBootstrap(data.bootstrap.body, context, data.bootstrap.status));
|
|
const cards = bootstrap.normalizeCapabilities(data.capabilities, context.identity);
|
|
assert.ok(bootstrap.cardComplete(cards, 'HUX-06'));
|
|
assert.ok(bootstrap.cardComplete(cards, 'HUX-07'));
|
|
assert.ok(bootstrap.cardComplete(cards, 'HUX-09'));
|
|
assert.ok(bootstrap.cardComplete(cards, 'HUX-12'));
|
|
|
|
const catalog = modes.normalizeModes(data.modes);
|
|
assert.equal(catalog.length, 5);
|
|
const selection = modes.normalizeSelection(data.selection, context.identity,
|
|
context.projectId, context.conversationId);
|
|
assert.equal(selection.mode.id, 'fast');
|
|
assert.deepEqual(waveC.normalizeMediaPage(data.media, context.identity,
|
|
context.projectId, context.conversationId), {media: []});
|
|
const trigger = {surface: context.identity.surface, context: 'first_session'};
|
|
assert.ok(waveC.normalizeEvaluation(data.evaluation, context.identity, context.sessionId,
|
|
context.conversationId, trigger, true));
|
|
const releases = waveC.normalizeReleasePage(data.releases, context.identity,
|
|
context.projectId, context.conversationId);
|
|
assert.deepEqual(releases, {items: [], withheld: 0});
|