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
JavaScript
;
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