Skip to main content
Glama
test-config.js5.11 kB
/** * Centralized test configuration for StockSpark MCP tests * Contains all common environment variables, test data, and utilities */ // Environment Configuration const TEST_CONFIG = { // Authentication auth: { username: process.env.STOCKSPARK_USERNAME || 'your-email@example.com', password: process.env.STOCKSPARK_PASSWORD || 'your-password', clientId: process.env.STOCKSPARK_CLIENT_ID || 'carspark-api', authUrl: process.env.STOCKSPARK_AUTH_URL || 'https://auth.motork.io/realms/prod/protocol/openid-connect/token' }, // API Configuration api: { baseUrl: 'https://carspark-api.dealerk.com', country: 'it' }, // Company/Dealer Configuration company: { companyId: '35430', dealerId: '196036' } }; // Test Data Templates const TEST_DATA = { // Mercedes S 500 2021 example mercedesS500: { make_name: 'Mercedes-Benz', model_name: 'Classe S', version_name: 'S 500', year: 2021, price: 34000, mileage: 87000, condition: 'USED', color: 'nero', fuel: 'PETROL', transmission: 'AUTOMATIC', model_id: '31081', // Valid Mercedes-Benz model ID with 2021-2022 trims trimId: '100026891520210101' // Working trim ID for 2021 S 500 }, // Minimal working vehicle payload (from successful tests) workingVehiclePayload: { companyId: 35430, dealerId: 196036, make: { name: "Mercedes-Benz" }, model: { name: "Classe S" }, version: { name: "S 500" }, constructionYear: "2021", fuel: { name: "PETROL" }, gearbox: { name: "AUTOMATIC" }, condition: { name: "USED" }, priceGross: { consumerPrice: 34000 }, priceNet: { consumerPrice: 34000 }, mileage: 87000, vehicleClass: { name: "car" }, status: { name: "FREE" }, wheelFormula: { name: "FRONT" }, vatRate: 0, constructionDate: "2021-01-01T00:00:00.000Z", body: { name: "SEDAN" }, doors: 4, seat: 5, power: 330, powerHp: 449, cubicCapacity: 2999, cylinders: 6, accidentDamaged: false, billable: true, comingSoon: false, corporate: false, deductible: false, demo: false, lastMinuteOffer: false, luxury: false, negotiable: true, noviceDrivable: true, onSale: true, promptDelivery: false, reservedNegotiation: false, servicingDoc: false, visibility: true, warranty: false, firstRegistration: "202101" // NOTE: color field intentionally omitted (causes validation errors) }, // Other test vehicles fiatPanda: { make_name: 'Fiat', model_name: 'Panda', year: 2020, price: 12000, condition: 'USED' } }; // Common Test Utilities class TestUtils { /** * Set up environment variables for tests */ static setupEnvironment() { process.env.STOCKSPARK_USERNAME = TEST_CONFIG.auth.username; process.env.STOCKSPARK_PASSWORD = TEST_CONFIG.auth.password; process.env.STOCKSPARK_CLIENT_ID = TEST_CONFIG.auth.clientId; process.env.STOCKSPARK_AUTH_URL = TEST_CONFIG.auth.authUrl; process.env.STOCKSPARK_API_URL = TEST_CONFIG.api.baseUrl; process.env.STOCKSPARK_COUNTRY = TEST_CONFIG.api.country; process.env.STOCKSPARK_COMPANY_ID = TEST_CONFIG.company.companyId; process.env.STOCKSPARK_DEALER_ID = TEST_CONFIG.company.dealerId; } /** * Create API client instances */ static async createClients() { const { AuthManager } = require('../../src/auth'); const { StockSparkClient } = require('../../src/api/client'); const { VehicleAPI } = require('../../src/api/vehicles'); const { ImageAPI } = require('../../src/api/images'); const { PublicationAPI } = require('../../src/api/publications'); const { ReferenceAPI } = require('../../src/api/reference'); const authManager = new AuthManager(); const client = new StockSparkClient(authManager); const vehicleAPI = new VehicleAPI(client); const imageAPI = new ImageAPI(client); const publicationAPI = new PublicationAPI(client); const referenceAPI = new ReferenceAPI(client); return { authManager, client, vehicleAPI, imageAPI, publicationAPI, referenceAPI }; } /** * Standard test result formatter */ static formatTestResult(testName, success, details = '') { const status = success ? '✅ PASS' : '❌ FAIL'; const timestamp = new Date().toISOString(); console.log(`[${timestamp}] ${status}: ${testName}`); if (details) { console.log(` ${details}`); } return { testName, success, details, timestamp }; } /** * Wait for a specified time (useful for API rate limiting) */ static async sleep(ms) { return new Promise(resolve => setTimeout(resolve, ms)); } /** * Generate unique test data to avoid conflicts */ static generateUniqueTestData(baseData) { const timestamp = Date.now(); return { ...baseData, mileage: (baseData.mileage || 50000) + Math.floor(Math.random() * 1000), price: (baseData.price || 20000) + Math.floor(Math.random() * 1000) }; } } module.exports = { TEST_CONFIG, TEST_DATA, TestUtils };

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/loukach/stockspark-mcp-poc'

If you have feedback or need assistance with the MCP directory API, please join our Discord server