UNPKG

@agentics.org/sparc2

Version:

SPARC 2.0 - Autonomous Vector Coding Agent + MCP. SPARC 2.0, vectorized AI code analysis, is an intelligent coding agent framework built to automate and streamline software development. It combines secure execution environments, and version control into a

131 lines (113 loc) 4 kB
/** * E2B Code Interpreter Tests * * This file contains tests for the E2B Code Interpreter implementation. */ import { assertEquals, assertExists } from "https://deno.land/std/testing/asserts.ts"; import { createSandbox, executeCode, installPackages, listFiles, readFile, writeFile, } from "./codeInterpreter.ts"; // Skip tests if E2B_API_KEY is not set const apiKey = Deno.env.get("E2B_API_KEY"); const runTests = apiKey !== undefined; if (!runTests) { console.warn("Skipping E2B tests: E2B_API_KEY environment variable is not set"); } Deno.test({ name: "E2B Code Interpreter - File Operations", ignore: !runTests, async fn() { // Create a single sandbox for all file operations const sandbox = await createSandbox(); try { // Test writing a file const testContent = "Hello, E2B!\nThis is a test file."; await writeFile("/tmp/test.txt", testContent, {}, sandbox); // Test reading the file const content = await readFile("/tmp/test.txt", {}, sandbox); assertEquals(content, testContent, "File content should match what was written"); // Test listing files const files = await listFiles("/tmp", {}, sandbox); assertExists( files.find((file) => file === "test.txt"), "test.txt should be in the list of files", ); } finally { // Clean up await sandbox.kill?.(); } }, sanitizeResources: false, sanitizeOps: false, }); Deno.test({ name: "E2B Code Interpreter - Python Execution", ignore: !runTests, async fn() { // Test Python code execution const pythonCode = ` x = 10 y = 20 print("Hello from Python!") print(f"x + y = {x + y}") `; const result = await executeCode(pythonCode, { language: "python" }); assertEquals(result.error, null, "Python execution should not have errors"); // Check that the output contains the expected text const output = result.logs.stdout.join("\n"); assertEquals(output.includes("Hello from Python!"), true, "Output should contain greeting"); assertEquals(output.includes("x + y = 30"), true, "Output should contain calculation result"); }, sanitizeResources: false, sanitizeOps: false, }); Deno.test({ name: "E2B Code Interpreter - JavaScript Execution", ignore: !runTests, async fn() { // Test JavaScript code execution const jsCode = ` const x = 10; const y = 20; console.log("Hello from JavaScript!"); console.log(\`x + y = \${x + y}\`); `; const result = await executeCode(jsCode, { language: "javascript" }); assertEquals(result.error, null, "JavaScript execution should not have errors"); // Check that the output contains the expected text const output = result.logs.stdout.join("\n"); assertEquals(output.includes("Hello from JavaScript!"), true, "Output should contain greeting"); assertEquals(output.includes("x + y = 30"), true, "Output should contain calculation result"); }, sanitizeResources: false, sanitizeOps: false, }); Deno.test({ name: "E2B Code Interpreter - Package Installation", ignore: !runTests, async fn() { // Test package installation const result = await installPackages(["numpy"], "python"); assertEquals(result.error, null, "Package installation should not have errors"); // Test using the installed package const pythonCode = ` import numpy as np arr = np.array([1, 2, 3, 4, 5]) print(f"NumPy array: {arr}") print(f"Mean: {np.mean(arr)}") `; const execResult = await executeCode(pythonCode, { language: "python" }); assertEquals(execResult.error, null, "Python execution with NumPy should not have errors"); // Check that the output contains the expected text const output = execResult.logs.stdout.join("\n"); assertEquals(output.includes("NumPy array:"), true, "Output should contain NumPy array"); assertEquals(output.includes("Mean:"), true, "Output should contain mean calculation"); }, sanitizeResources: false, sanitizeOps: false, });