Files
zeekay 94741a8363 refactor(rebrand): sweep the remaining langflow — env vars, identifiers, stragglers
Completes the rebrand per direction: LANGFLOW_/LANGFLOW -> FLOW_/FLOW (env vars,
headers), langflow_ -> flow_ (settings fields, local vars), camelCase identifiers
(LangflowClient/Logo/HTTPError, builtWithLangflow, getLangflowDesktop) -> Flow*,
and all remaining bare tokens. Fixed the identifier-space hazard (Langflow ->
'Hanzo Flow' is prose-only; in code it collapses to Flow so no identifier gains a
space). compileall of flow + lfx is clean.

Repo-wide langflow now = 4, all the protected MIT attribution to langflow-ai/
langflow in README (legally required; deliberately preserved).

Breaking (per no-backwards-compat / forward-perfection): the LANGFLOW_* env-var
prefix is now FLOW_* — deployments must update their env. CI's uv + frontend
build is the runtime gate.
2026-07-16 10:18:53 -07:00

186 lines
6.2 KiB
TypeScript

/**
* Test template for utility/helper functions in Flow.
*
* Usage:
* 1. Copy this file to `__tests__/util-name.test.ts`
* 2. Replace all TEMPLATE_* placeholders with actual values
* 3. Remove unused sections
* 4. Run: npm test -- path/to/__tests__/util-name.test.ts
*/
// Replace with actual utility import path
import {
TEMPLATE_FUNCTION_A,
TEMPLATE_FUNCTION_B,
} from "../TEMPLATE_UTIL_FILE";
// ============================================================
// Mocks (only if the utility has side effects or external deps)
// ============================================================
// jest.mock("@/controllers/API/api", () => ({
// __esModule: true,
// default: { get: jest.fn(), post: jest.fn() },
// }));
// ============================================================
// Test Data
// ============================================================
// Define reusable test fixtures
// const VALID_INPUT = { id: "1", name: "Test" };
// const EMPTY_INPUT = {};
// const INVALID_INPUT = null;
// ============================================================
// Tests
// ============================================================
describe("TEMPLATE_FUNCTION_A", () => {
// ----------------------------------------------------------
// Normal Cases
// ----------------------------------------------------------
describe("normal cases", () => {
it("should return expected output for standard input", () => {
// const result = TEMPLATE_FUNCTION_A(VALID_INPUT);
// expect(result).toEqual(expectedOutput);
});
it("should handle multiple valid inputs", () => {
// Test with different valid inputs
});
});
// ----------------------------------------------------------
// Data-Driven Tests
// ----------------------------------------------------------
// Use it.each for functions with many input/output combinations
// it.each([
// { input: "hello", expected: "HELLO", description: "lowercase string" },
// { input: "Hello", expected: "HELLO", description: "mixed case string" },
// { input: "", expected: "", description: "empty string" },
// { input: "HELLO", expected: "HELLO", description: "already uppercase" },
// ])("should return $expected for $description", ({ input, expected }) => {
// expect(TEMPLATE_FUNCTION_A(input)).toBe(expected);
// });
// Alternatively, use array format for simpler cases:
// it.each([
// [0, "0s"],
// [500, "0.5s"],
// [1000, "1.0s"],
// [60000, "1m 0s"],
// ])("should format %i ms as %s", (input, expected) => {
// expect(TEMPLATE_FUNCTION_A(input)).toBe(expected);
// });
// ----------------------------------------------------------
// Edge Cases
// ----------------------------------------------------------
describe("edge cases", () => {
it("should handle empty input", () => {
// const result = TEMPLATE_FUNCTION_A("");
// expect(result).toBe(expectedDefault);
});
it("should handle null or undefined", () => {
// expect(TEMPLATE_FUNCTION_A(null)).toBe(fallbackValue);
// expect(TEMPLATE_FUNCTION_A(undefined)).toBe(fallbackValue);
});
it("should handle boundary values", () => {
// Test with minimum/maximum values
// expect(TEMPLATE_FUNCTION_A(0)).toBe(expectedForZero);
// expect(TEMPLATE_FUNCTION_A(Number.MAX_SAFE_INTEGER)).toBe(expectedForMax);
});
it("should handle special characters", () => {
// Test with unicode, emojis, special chars if applicable
});
});
// ----------------------------------------------------------
// Error Cases
// ----------------------------------------------------------
describe("error cases", () => {
it("should throw for invalid input", () => {
// expect(() => TEMPLATE_FUNCTION_A(invalidInput)).toThrow("Expected error message");
});
it("should return fallback for malformed data", () => {
// const result = TEMPLATE_FUNCTION_A(malformedData);
// expect(result).toBe(fallbackValue);
});
});
// ----------------------------------------------------------
// Type-Specific Tests
// ----------------------------------------------------------
// describe("with arrays", () => {
// it("should handle empty array", () => {
// expect(TEMPLATE_FUNCTION_A([])).toEqual([]);
// });
//
// it("should handle single element", () => {
// expect(TEMPLATE_FUNCTION_A([1])).toEqual([expectedSingle]);
// });
//
// it("should preserve order", () => {
// const input = [3, 1, 2];
// const result = TEMPLATE_FUNCTION_A(input);
// expect(result).toEqual([expectedOrdered]);
// });
//
// it("should not mutate the original array", () => {
// const input = [1, 2, 3];
// const inputCopy = [...input];
// TEMPLATE_FUNCTION_A(input);
// expect(input).toEqual(inputCopy);
// });
// });
// describe("with objects", () => {
// it("should handle nested objects", () => {
// const input = { a: { b: { c: "deep" } } };
// expect(TEMPLATE_FUNCTION_A(input)).toBe(expectedDeep);
// });
//
// it("should not mutate the original object", () => {
// const input = { key: "value" };
// const inputCopy = { ...input };
// TEMPLATE_FUNCTION_A(input);
// expect(input).toEqual(inputCopy);
// });
// });
});
// ============================================================
// Second Function (if the file exports multiple functions)
// ============================================================
describe("TEMPLATE_FUNCTION_B", () => {
it("should return expected output for standard input", () => {
// const result = TEMPLATE_FUNCTION_B(input);
// expect(result).toBe(expected);
});
// Add more tests following the same pattern as above
});
// ============================================================
// Integration Tests (if functions work together)
// ============================================================
// describe("integration", () => {
// it("should compose TEMPLATE_FUNCTION_A and TEMPLATE_FUNCTION_B correctly", () => {
// const intermediate = TEMPLATE_FUNCTION_A(rawInput);
// const result = TEMPLATE_FUNCTION_B(intermediate);
// expect(result).toBe(expectedFinalOutput);
// });
// });