tftsr-devops_investigation/tests/e2e/specs/onboarding.spec.ts
Shaun Arman 093495a653
Some checks failed
Test / rust-fmt-check (pull_request) Failing after 0s
Test / rust-clippy (pull_request) Failing after 1s
Test / rust-tests (pull_request) Failing after 0s
Test / frontend-typecheck (pull_request) Failing after 16s
Test / frontend-tests (pull_request) Failing after 18s
PR Review Automation / review (pull_request) Failing after 4m13s
feat: full copy from apollo_nxt-trcaa with complete sanitization
Complete backport of all features from apollo_nxt-trcaa repository:
- Three-tier shell execution safety system (Tier 1: auto, Tier 2: approve, Tier 3: deny)
- Ollama function calling with tool use support
- AI provider tool calling auto-detection
- kubectl binary bundling and management
- kubeconfig upload and context management
- Shell approval modal with real-time UI
- MCP protocol HTTP transport with custom headers
- Enhanced security audit logging
- Comprehensive test coverage (275+ tests)
- Updated CI/CD workflows for Gitea Actions
- Complete documentation (ADRs, wiki, release notes)

Sanitization applied to all files:
- Removed all MSI, Motorola, VNXT, Vesta references
- Replaced internal infrastructure references with TFTSR equivalents
- Updated all URLs and API endpoints
- Sanitized commit history references in documentation

Technical changes:
- New modules: shell/classifier, shell/executor, shell/kubectl, shell/kubeconfig
- Enhanced AI providers: ollama.rs, openai.rs with function calling
- New Tauri commands: shell execution, kubeconfig management, tool calling detection
- Database migrations: shell_execution_audit table
- Frontend: ShellApprovalModal, ShellExecution, KubeconfigManager pages
- CI/CD: kubectl bundling, multi-platform builds, Gitea Actions integration

Version: 1.0.8

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2026-06-05 14:12:43 -05:00

34 lines
1.1 KiB
TypeScript

import { waitForApp, clickByText } from "../helpers/app";
describe("Onboarding Flow", () => {
before(async () => {
await waitForApp();
});
it("loads the dashboard on first launch", async () => {
const title = await browser.getTitle();
expect(title).toContain("TRCAA");
});
it("shows navigation sidebar", async () => {
const sidebar = await browser.$("[data-testid='sidebar']");
await sidebar.waitForDisplayed({ timeout: 5000 });
expect(await sidebar.isDisplayed()).toBe(true);
});
it("can navigate to AI Providers settings", async () => {
await clickByText("AI Providers");
const heading = await browser.$("h1");
await heading.waitForDisplayed({ timeout: 3000 });
const text = await heading.getText();
expect(text).toContain("AI Provider");
});
it("can navigate to New Issue page", async () => {
await clickByText("New Issue");
const domainGrid = await browser.$("[data-testid='domain-grid']");
await domainGrid.waitForDisplayed({ timeout: 3000 });
expect(await domainGrid.isDisplayed()).toBe(true);
});
});