atlas-iac/testing/tests/test_hermes_webui_hux_backend_node.js

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});