UNPKG

ruch

Version:

Revolutionary React TypeScript CLI with hexagonal architecture & AI-powered development assistance. Create maintainable, scalable applications with domain-driven design and integrated AI tooling.

34 lines 2.02 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); const jsx_runtime_1 = require("react/jsx-runtime"); const react_1 = require("@testing-library/react"); const vitest_1 = require("vitest"); const ServiceContext_1 = require("./ServiceContext"); // Mock services const mockServices = {}; // Test component to access services const TestComponent = () => { const services = (0, ServiceContext_1.useServices)(); return ((0, jsx_runtime_1.jsxs)("div", { children: [(0, jsx_runtime_1.jsx)("div", { "data-testid": "services-count", children: Object.keys(services).length }), Object.keys(services).map(key => ((0, jsx_runtime_1.jsx)("div", { "data-testid": `service-${key}`, children: key }, key)))] })); }; (0, vitest_1.describe)('ServiceContext', () => { (0, vitest_1.it)('should provide default services', () => { (0, react_1.render)((0, jsx_runtime_1.jsx)(ServiceContext_1.ServiceProvider, { children: (0, jsx_runtime_1.jsx)(TestComponent, {}) })); (0, vitest_1.expect)(react_1.screen.getByTestId('services-count')).toHaveTextContent('0'); }); (0, vitest_1.it)('should allow service override', () => { (0, react_1.render)((0, jsx_runtime_1.jsx)(ServiceContext_1.ServiceProvider, { services: mockServices, children: (0, jsx_runtime_1.jsx)(TestComponent, {}) })); (0, vitest_1.expect)(react_1.screen.getByTestId('services-count')).toHaveTextContent('0'); }); (0, vitest_1.it)('should provide services through useServices hook', () => { let capturedServices; const TestHook = () => { capturedServices = (0, ServiceContext_1.useServices)(); return null; }; (0, react_1.render)((0, jsx_runtime_1.jsx)(ServiceContext_1.ServiceProvider, { children: (0, jsx_runtime_1.jsx)(TestHook, {}) })); (0, vitest_1.expect)(capturedServices).toBeDefined(); (0, vitest_1.expect)(Object.keys(capturedServices)).toHaveLength(0); }); }); //# sourceMappingURL=ServiceContext.test.js.map