All files / src/tests/utils security.ts

16.66% Statements 1/6
0% Branches 0/5
0% Functions 0/4
16.66% Lines 1/6

Press n or j to go to the next uncovered block, b, p or k for the previous block.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85                                                      1x                                                                                                                  
/**
 * Security-specific test utilities for CIA Compliance Manager.
 *
 * @packageDocumentation
 */
 
import { vi } from "vitest";
import { SecurityLevel } from "../../types/cia";
import { TEST_CIA_OPTIONS } from "../testUtils/testData";
 
/**
 * Creates mock security level state with standard values
 */
export function createMockSecurityLevelState() {
  return {
    availabilityLevel: "Moderate" as SecurityLevel,
    integrityLevel: "Moderate" as SecurityLevel,
    confidentialityLevel: "Moderate" as SecurityLevel,
    setAvailabilityLevel: vi.fn(),
    setIntegrityLevel: vi.fn(),
    setConfidentialityLevel: vi.fn(),
  };
}
 
/**
 * Standard test data for security levels
 */
export const TEST_SECURITY_LEVELS: SecurityLevel[] = [
  "None",
  "Low",
  "Moderate",
  "High",
  "Very High",
];
 
/**
 * Converts a string value to SecurityLevel type
 * @param level String value to convert
 * @returns The value as a SecurityLevel type
 */
export function toSecurityLevel(level: string): SecurityLevel {
  return level as SecurityLevel;
}
 
/**
 * Gets the numerical value for a security level
 * @param level Security level to convert
 * @returns Number from 0-4 representing the level
 */
export function getSecurityLevelValue(level: SecurityLevel): number {
  const values: Record<SecurityLevel, number> = {
    None: 0,
    Low: 1,
    Moderate: 2,
    High: 3,
    "Very High": 4,
  };
  return values[level] || 0;
}
 
/**
 * Creates test props with set security levels
 * @param availabilityLevel Availability level
 * @param integrityLevel Integrity level
 * @param confidentialityLevel Confidentiality level
 * @returns Props object with set security levels
 */
export function createSecurityLevelProps(
  availabilityLevel: SecurityLevel = "Moderate",
  integrityLevel: SecurityLevel = "Moderate",
  confidentialityLevel: SecurityLevel = "Moderate"
) {
  return {
    availabilityLevel,
    integrityLevel,
    confidentialityLevel,
    setAvailabilityLevel: vi.fn(),
    setIntegrityLevel: vi.fn(),
    setConfidentialityLevel: vi.fn(),
  };
}
 
// Re-export CIA test options for convenience
export { TEST_CIA_OPTIONS };