155 lines
3.8 KiB
TypeScript
155 lines
3.8 KiB
TypeScript
// Test user definitions for LDAP and local authentication
|
|
export const LDAP_USERS = {
|
|
valid: {
|
|
username: 'testuser1',
|
|
password: 'Password123!',
|
|
email: 'testuser1@ainventory.local',
|
|
},
|
|
invalid: {
|
|
username: 'invalid_user',
|
|
password: 'wrong_password',
|
|
},
|
|
};
|
|
|
|
export const LOCAL_USERS = {
|
|
admin: {
|
|
username: 'admin',
|
|
password: 'AdminPassword123!',
|
|
email: 'admin@ainventory.local',
|
|
},
|
|
regular: {
|
|
username: 'testuser2',
|
|
password: 'UserPassword123!',
|
|
email: 'testuser2@ainventory.local',
|
|
},
|
|
};
|
|
|
|
// Test inventory items for scanning and AI extraction workflows
|
|
export const TEST_ITEMS = [
|
|
{
|
|
name: 'Widget A',
|
|
barcode: '123456789',
|
|
part_number: 'WA-001',
|
|
category: 'Electronics',
|
|
quantity: 50,
|
|
},
|
|
{
|
|
name: 'Widget B',
|
|
barcode: '987654321',
|
|
part_number: 'WB-001',
|
|
category: 'Electronics',
|
|
quantity: 25,
|
|
},
|
|
{
|
|
name: 'Capacitor Pack',
|
|
barcode: '555666777',
|
|
part_number: 'CAP-100',
|
|
category: 'Components',
|
|
quantity: 100,
|
|
},
|
|
{
|
|
name: 'Resistor Assortment',
|
|
barcode: '111222333',
|
|
part_number: 'RES-500',
|
|
category: 'Components',
|
|
quantity: 500,
|
|
},
|
|
];
|
|
|
|
// Test categories for inventory organization
|
|
export const TEST_CATEGORIES = [
|
|
{ name: 'Electronics', description: 'Electronic components and devices' },
|
|
{ name: 'Components', description: 'Discrete electronic components' },
|
|
{ name: 'Tools', description: 'Maintenance and assembly tools' },
|
|
{ name: 'Cables', description: 'Network and power cables' },
|
|
];
|
|
|
|
// Box labels for multi-item scanning workflow
|
|
export const TEST_BOX_LABELS = [
|
|
{ label: 'BOX-BATCH-001', items: ['123456789', '987654321'] },
|
|
{ label: 'BOX-BATCH-002', items: ['555666777', '111222333'] },
|
|
];
|
|
|
|
// AI extraction test images (base64 encoded sample data for testing)
|
|
export const AI_EXTRACTION_TEST_DATA = {
|
|
valid_label: {
|
|
filename: 'valid_label.jpg',
|
|
// Placeholder for base64 encoded test image
|
|
base64: 'data:image/jpeg;base64,',
|
|
expected_extraction: {
|
|
name: 'Test Component',
|
|
part_number: 'TEST-001',
|
|
quantity: '10',
|
|
},
|
|
},
|
|
invalid_label: {
|
|
filename: 'invalid_label.jpg',
|
|
base64: 'data:image/jpeg;base64,',
|
|
expected_extraction: {
|
|
error: 'Unable to extract data from image',
|
|
},
|
|
},
|
|
};
|
|
|
|
// Offline sync test scenarios
|
|
export const OFFLINE_SYNC_SCENARIOS = {
|
|
single_item_checkin: {
|
|
operations: [
|
|
{ type: 'checkin', item_id: 1, quantity: 5 },
|
|
],
|
|
},
|
|
multi_item_checkout: {
|
|
operations: [
|
|
{ type: 'checkout', item_id: 1, quantity: 3 },
|
|
{ type: 'checkout', item_id: 2, quantity: 2 },
|
|
],
|
|
},
|
|
mixed_operations: {
|
|
operations: [
|
|
{ type: 'checkin', item_id: 1, quantity: 5 },
|
|
{ type: 'checkout', item_id: 2, quantity: 2 },
|
|
{ type: 'checkin', item_id: 3, quantity: 10 },
|
|
],
|
|
},
|
|
};
|
|
|
|
// Port configuration for Docker containers (per workflow instance)
|
|
export const PORT_CONFIG = {
|
|
base: {
|
|
backend: 8906,
|
|
frontend: 3000,
|
|
ldap: 389,
|
|
},
|
|
offsets: {
|
|
workflow_1_login: { backend: 9001, frontend: 9100, ldap: 9389 },
|
|
workflow_2_scan: { backend: 9002, frontend: 9101, ldap: 9390 },
|
|
workflow_3_ai: { backend: 9003, frontend: 9102, ldap: 9391 },
|
|
workflow_4_admin: { backend: 9004, frontend: 9103, ldap: 9392 },
|
|
workflow_5_offline: { backend: 9005, frontend: 9104, ldap: 9393 },
|
|
},
|
|
};
|
|
|
|
// Environment variable defaults for each workflow
|
|
export const WORKFLOW_ENV_DEFAULTS = {
|
|
login: {
|
|
LDAP_ENABLED: 'true',
|
|
AI_PROVIDER: 'gemini',
|
|
},
|
|
scan: {
|
|
LDAP_ENABLED: 'false',
|
|
AI_PROVIDER: 'gemini',
|
|
},
|
|
ai_extraction: {
|
|
LDAP_ENABLED: 'false',
|
|
AI_PROVIDER: 'gemini',
|
|
},
|
|
admin_settings: {
|
|
LDAP_ENABLED: 'true',
|
|
AI_PROVIDER: 'gemini',
|
|
},
|
|
offline_sync: {
|
|
LDAP_ENABLED: 'false',
|
|
AI_PROVIDER: 'claude',
|
|
},
|
|
};
|