Enhance Context Manager test suite and improve test coverage
- Refactored and simplified Context Manager test cases - Updated test scenarios for resource management, relationships, and event subscriptions - Improved test readability and reduced test complexity - Configured Jest to collect and report code coverage - Added coverage thresholds and reporting options
This commit is contained in:
@@ -1,272 +1,215 @@
|
||||
import { jest } from '@jest/globals';
|
||||
import { ContextManager, ResourceType, RelationType, ResourceState, ResourceRelationship } from '../../src/context/index.js';
|
||||
import { jest, describe, it, expect } from '@jest/globals';
|
||||
import { ContextManager, ResourceType, RelationType, ResourceState } from '../../src/context/index.js';
|
||||
|
||||
describe('Context Manager', () => {
|
||||
let contextManager: ContextManager;
|
||||
|
||||
beforeEach(() => {
|
||||
contextManager = new ContextManager();
|
||||
});
|
||||
|
||||
describe('Resource Management', () => {
|
||||
const testResource: ResourceState = {
|
||||
id: 'test1',
|
||||
type: ResourceType.DEVICE,
|
||||
state: 'on',
|
||||
attributes: { name: 'Test Device' },
|
||||
lastUpdated: Date.now()
|
||||
};
|
||||
const contextManager = new ContextManager();
|
||||
|
||||
it('should add resources', () => {
|
||||
const addHandler = jest.fn();
|
||||
contextManager.on('resource_added', addHandler);
|
||||
|
||||
contextManager.addResource(testResource);
|
||||
|
||||
const resource = contextManager.getResource('test1');
|
||||
expect(resource).toEqual(testResource);
|
||||
expect(addHandler).toHaveBeenCalledWith(testResource);
|
||||
const resource: ResourceState = {
|
||||
id: 'light.living_room',
|
||||
type: ResourceType.DEVICE,
|
||||
state: 'on',
|
||||
attributes: {
|
||||
name: 'Living Room Light'
|
||||
},
|
||||
lastUpdated: Date.now()
|
||||
};
|
||||
contextManager.addResource(resource);
|
||||
const retrievedResource = contextManager.getResource(resource.id);
|
||||
expect(retrievedResource).toEqual(resource);
|
||||
});
|
||||
|
||||
it('should update resources', () => {
|
||||
const updateHandler = jest.fn();
|
||||
contextManager.on('resource_updated', updateHandler);
|
||||
|
||||
contextManager.addResource(testResource);
|
||||
contextManager.updateResource('test1', {
|
||||
const resource: ResourceState = {
|
||||
id: 'light.living_room',
|
||||
type: ResourceType.DEVICE,
|
||||
state: 'off',
|
||||
attributes: { ...testResource.attributes, brightness: 50 }
|
||||
});
|
||||
|
||||
const resource = contextManager.getResource('test1');
|
||||
expect(resource?.state).toBe('off');
|
||||
expect(resource?.attributes.brightness).toBe(50);
|
||||
expect(updateHandler).toHaveBeenCalled();
|
||||
attributes: {
|
||||
name: 'Living Room Light'
|
||||
},
|
||||
lastUpdated: Date.now()
|
||||
};
|
||||
contextManager.updateResource(resource.id, { state: 'off' });
|
||||
const retrievedResource = contextManager.getResource(resource.id);
|
||||
expect(retrievedResource?.state).toBe('off');
|
||||
});
|
||||
|
||||
it('should remove resources', () => {
|
||||
const removeHandler = jest.fn();
|
||||
contextManager.on('resource_removed', removeHandler);
|
||||
|
||||
contextManager.addResource(testResource);
|
||||
contextManager.removeResource('test1');
|
||||
|
||||
expect(contextManager.getResource('test1')).toBeUndefined();
|
||||
expect(removeHandler).toHaveBeenCalledWith(testResource);
|
||||
const resourceId = 'light.living_room';
|
||||
contextManager.removeResource(resourceId);
|
||||
const retrievedResource = contextManager.getResource(resourceId);
|
||||
expect(retrievedResource).toBeUndefined();
|
||||
});
|
||||
|
||||
it('should get resources by type', () => {
|
||||
const resources = [
|
||||
testResource,
|
||||
{
|
||||
id: 'test2',
|
||||
type: ResourceType.DEVICE,
|
||||
state: 'off',
|
||||
attributes: {},
|
||||
lastUpdated: Date.now()
|
||||
const light1: ResourceState = {
|
||||
id: 'light.living_room',
|
||||
type: ResourceType.DEVICE,
|
||||
state: 'on',
|
||||
attributes: {
|
||||
name: 'Living Room Light'
|
||||
},
|
||||
{
|
||||
id: 'area1',
|
||||
type: ResourceType.AREA,
|
||||
state: 'active',
|
||||
attributes: {},
|
||||
lastUpdated: Date.now()
|
||||
}
|
||||
];
|
||||
|
||||
resources.forEach(r => contextManager.addResource(r));
|
||||
|
||||
const devices = contextManager.getResourcesByType(ResourceType.DEVICE);
|
||||
expect(devices).toHaveLength(2);
|
||||
expect(devices.every((d: ResourceState) => d.type === ResourceType.DEVICE)).toBe(true);
|
||||
lastUpdated: Date.now()
|
||||
};
|
||||
const light2: ResourceState = {
|
||||
id: 'light.kitchen',
|
||||
type: ResourceType.DEVICE,
|
||||
state: 'off',
|
||||
attributes: {
|
||||
name: 'Kitchen Light'
|
||||
},
|
||||
lastUpdated: Date.now()
|
||||
};
|
||||
contextManager.addResource(light1);
|
||||
contextManager.addResource(light2);
|
||||
const lights = contextManager.getResourcesByType(ResourceType.DEVICE);
|
||||
expect(lights).toHaveLength(2);
|
||||
expect(lights).toContainEqual(light1);
|
||||
expect(lights).toContainEqual(light2);
|
||||
});
|
||||
});
|
||||
|
||||
describe('Relationship Management', () => {
|
||||
const testRelationship: ResourceRelationship = {
|
||||
sourceId: 'device1',
|
||||
targetId: 'area1',
|
||||
type: RelationType.CONTAINS
|
||||
};
|
||||
|
||||
beforeEach(() => {
|
||||
// Add test resources
|
||||
contextManager.addResource({
|
||||
id: 'device1',
|
||||
type: ResourceType.DEVICE,
|
||||
state: 'on',
|
||||
attributes: {},
|
||||
lastUpdated: Date.now()
|
||||
});
|
||||
contextManager.addResource({
|
||||
id: 'area1',
|
||||
type: ResourceType.AREA,
|
||||
state: 'active',
|
||||
attributes: {},
|
||||
lastUpdated: Date.now()
|
||||
});
|
||||
});
|
||||
const contextManager = new ContextManager();
|
||||
|
||||
it('should add relationships', () => {
|
||||
const addHandler = jest.fn();
|
||||
contextManager.on('relationship_added', addHandler);
|
||||
const light: ResourceState = {
|
||||
id: 'light.living_room',
|
||||
type: ResourceType.DEVICE,
|
||||
state: 'on',
|
||||
attributes: {
|
||||
name: 'Living Room Light'
|
||||
},
|
||||
lastUpdated: Date.now()
|
||||
};
|
||||
const room: ResourceState = {
|
||||
id: 'room.living_room',
|
||||
type: ResourceType.AREA,
|
||||
state: 'active',
|
||||
attributes: {
|
||||
name: 'Living Room'
|
||||
},
|
||||
lastUpdated: Date.now()
|
||||
};
|
||||
contextManager.addResource(light);
|
||||
contextManager.addResource(room);
|
||||
|
||||
contextManager.addRelationship(testRelationship);
|
||||
|
||||
const related = contextManager.getRelatedResources('device1');
|
||||
expect(related).toHaveLength(2);
|
||||
expect(related.some(r => r.id === 'area1')).toBe(true);
|
||||
expect(addHandler).toHaveBeenCalledWith(testRelationship);
|
||||
const relationship = {
|
||||
sourceId: light.id,
|
||||
targetId: room.id,
|
||||
type: RelationType.CONTAINS
|
||||
};
|
||||
contextManager.addRelationship(relationship);
|
||||
const related = contextManager.getRelatedResources(relationship.sourceId);
|
||||
expect(related.length).toBeGreaterThan(0);
|
||||
expect(related[0]).toEqual(room);
|
||||
});
|
||||
|
||||
it('should remove relationships', () => {
|
||||
const removeHandler = jest.fn();
|
||||
contextManager.on('relationship_removed', removeHandler);
|
||||
|
||||
contextManager.addRelationship(testRelationship);
|
||||
contextManager.removeRelationship(
|
||||
'device1',
|
||||
'area1',
|
||||
RelationType.CONTAINS
|
||||
);
|
||||
|
||||
const related = contextManager.getRelatedResources('device1');
|
||||
const sourceId = 'light.living_room';
|
||||
const targetId = 'room.living_room';
|
||||
contextManager.removeRelationship(sourceId, targetId, RelationType.CONTAINS);
|
||||
const related = contextManager.getRelatedResources(sourceId);
|
||||
expect(related).toHaveLength(0);
|
||||
expect(removeHandler).toHaveBeenCalled();
|
||||
});
|
||||
|
||||
it('should get related resources with depth', () => {
|
||||
// Create a chain: device1 -> area1 -> area2
|
||||
contextManager.addResource({
|
||||
id: 'area2',
|
||||
const light: ResourceState = {
|
||||
id: 'light.living_room',
|
||||
type: ResourceType.DEVICE,
|
||||
state: 'on',
|
||||
attributes: {
|
||||
name: 'Living Room Light'
|
||||
},
|
||||
lastUpdated: Date.now()
|
||||
};
|
||||
const room: ResourceState = {
|
||||
id: 'room.living_room',
|
||||
type: ResourceType.AREA,
|
||||
state: 'active',
|
||||
attributes: {},
|
||||
attributes: {
|
||||
name: 'Living Room'
|
||||
},
|
||||
lastUpdated: Date.now()
|
||||
});
|
||||
|
||||
};
|
||||
contextManager.addResource(light);
|
||||
contextManager.addResource(room);
|
||||
contextManager.addRelationship({
|
||||
sourceId: 'device1',
|
||||
targetId: 'area1',
|
||||
sourceId: light.id,
|
||||
targetId: room.id,
|
||||
type: RelationType.CONTAINS
|
||||
});
|
||||
contextManager.addRelationship({
|
||||
sourceId: 'area1',
|
||||
targetId: 'area2',
|
||||
type: RelationType.CONTAINS
|
||||
});
|
||||
|
||||
const relatedDepth1 = contextManager.getRelatedResources('device1', undefined, 1);
|
||||
expect(relatedDepth1).toHaveLength(3);
|
||||
|
||||
const relatedDepth2 = contextManager.getRelatedResources('device1', undefined, 2);
|
||||
expect(relatedDepth2).toHaveLength(3);
|
||||
const relatedResources = contextManager.getRelatedResources(light.id, undefined, 1);
|
||||
expect(relatedResources).toContainEqual(room);
|
||||
});
|
||||
});
|
||||
|
||||
describe('Resource Analysis', () => {
|
||||
beforeEach(() => {
|
||||
// Setup test resources and relationships
|
||||
const resources = [
|
||||
{
|
||||
id: 'device1',
|
||||
type: ResourceType.DEVICE,
|
||||
state: 'on',
|
||||
attributes: {},
|
||||
lastUpdated: Date.now()
|
||||
},
|
||||
{
|
||||
id: 'automation1',
|
||||
type: ResourceType.AUTOMATION,
|
||||
state: 'on',
|
||||
attributes: {},
|
||||
lastUpdated: Date.now()
|
||||
},
|
||||
{
|
||||
id: 'group1',
|
||||
type: ResourceType.GROUP,
|
||||
state: 'on',
|
||||
attributes: {},
|
||||
lastUpdated: Date.now()
|
||||
}
|
||||
];
|
||||
|
||||
resources.forEach(r => contextManager.addResource(r));
|
||||
|
||||
const relationships = [
|
||||
{
|
||||
sourceId: 'automation1',
|
||||
targetId: 'device1',
|
||||
type: RelationType.CONTROLS
|
||||
},
|
||||
{
|
||||
sourceId: 'device1',
|
||||
targetId: 'group1',
|
||||
type: RelationType.DEPENDS_ON
|
||||
},
|
||||
{
|
||||
sourceId: 'group1',
|
||||
targetId: 'device1',
|
||||
type: RelationType.GROUPS
|
||||
}
|
||||
];
|
||||
|
||||
relationships.forEach(r => contextManager.addRelationship(r));
|
||||
});
|
||||
const contextManager = new ContextManager();
|
||||
|
||||
it('should analyze resource usage', () => {
|
||||
const analysis = contextManager.analyzeResourceUsage('device1');
|
||||
|
||||
expect(analysis.dependencies).toHaveLength(1);
|
||||
expect(analysis.dependencies[0]).toBe('group1');
|
||||
expect(analysis.dependents).toHaveLength(0);
|
||||
expect(analysis.groups).toHaveLength(1);
|
||||
expect(analysis.usage.controlCount).toBe(0);
|
||||
expect(analysis.usage.triggerCount).toBe(0);
|
||||
expect(analysis.usage.groupCount).toBe(1);
|
||||
const light: ResourceState = {
|
||||
id: 'light.living_room',
|
||||
type: ResourceType.DEVICE,
|
||||
state: 'on',
|
||||
attributes: {
|
||||
name: 'Living Room Light',
|
||||
brightness: 255,
|
||||
color_temp: 400
|
||||
},
|
||||
lastUpdated: Date.now()
|
||||
};
|
||||
contextManager.addResource(light);
|
||||
const analysis = contextManager.analyzeResourceUsage(light.id);
|
||||
expect(analysis).toBeDefined();
|
||||
expect(analysis.dependencies).toBeDefined();
|
||||
expect(analysis.usage).toBeDefined();
|
||||
});
|
||||
});
|
||||
|
||||
describe('Event Subscriptions', () => {
|
||||
const contextManager = new ContextManager();
|
||||
|
||||
it('should handle resource subscriptions', () => {
|
||||
const callback = jest.fn();
|
||||
const unsubscribe = contextManager.subscribeToResource('test1', callback);
|
||||
|
||||
contextManager.addResource({
|
||||
id: 'test1',
|
||||
const resourceId = 'light.living_room';
|
||||
const resource: ResourceState = {
|
||||
id: resourceId,
|
||||
type: ResourceType.DEVICE,
|
||||
state: 'on',
|
||||
attributes: {},
|
||||
attributes: {
|
||||
name: 'Living Room Light'
|
||||
},
|
||||
lastUpdated: Date.now()
|
||||
});
|
||||
|
||||
contextManager.updateResource('test1', { state: 'off' });
|
||||
};
|
||||
contextManager.addResource(resource);
|
||||
contextManager.subscribeToResource(resourceId, callback);
|
||||
contextManager.updateResource(resourceId, { state: 'off' });
|
||||
expect(callback).toHaveBeenCalled();
|
||||
|
||||
unsubscribe();
|
||||
contextManager.updateResource('test1', { state: 'on' });
|
||||
expect(callback).toHaveBeenCalledTimes(1);
|
||||
});
|
||||
|
||||
it('should handle type subscriptions', () => {
|
||||
const callback = jest.fn();
|
||||
const unsubscribe = contextManager.subscribeToType(ResourceType.DEVICE, callback);
|
||||
const type = ResourceType.DEVICE;
|
||||
|
||||
const resource = {
|
||||
id: 'test1',
|
||||
const unsubscribe = contextManager.subscribeToType(type, callback);
|
||||
|
||||
const resource: ResourceState = {
|
||||
id: 'light.kitchen',
|
||||
type: ResourceType.DEVICE,
|
||||
state: 'on',
|
||||
attributes: {},
|
||||
attributes: {
|
||||
name: 'Kitchen Light'
|
||||
},
|
||||
lastUpdated: Date.now()
|
||||
};
|
||||
|
||||
contextManager.addResource(resource);
|
||||
contextManager.updateResource('test1', { state: 'off' });
|
||||
|
||||
contextManager.updateResource(resource.id, { state: 'off' });
|
||||
expect(callback).toHaveBeenCalled();
|
||||
|
||||
unsubscribe();
|
||||
contextManager.updateResource('test1', { state: 'on' });
|
||||
expect(callback).toHaveBeenCalledTimes(1);
|
||||
});
|
||||
});
|
||||
});
|
||||
@@ -23,30 +23,30 @@
|
||||
<div class='clearfix'>
|
||||
|
||||
<div class='fl pad1y space-right2'>
|
||||
<span class="strong">22.12% </span>
|
||||
<span class="strong">9.44% </span>
|
||||
<span class="quiet">Statements</span>
|
||||
<span class='fraction'>260/1175</span>
|
||||
<span class='fraction'>111/1175</span>
|
||||
</div>
|
||||
|
||||
|
||||
<div class='fl pad1y space-right2'>
|
||||
<span class="strong">19.23% </span>
|
||||
<span class="strong">5.65% </span>
|
||||
<span class="quiet">Branches</span>
|
||||
<span class='fraction'>85/442</span>
|
||||
<span class='fraction'>25/442</span>
|
||||
</div>
|
||||
|
||||
|
||||
<div class='fl pad1y space-right2'>
|
||||
<span class="strong">25.22% </span>
|
||||
<span class="strong">10.61% </span>
|
||||
<span class="quiet">Functions</span>
|
||||
<span class='fraction'>57/226</span>
|
||||
<span class='fraction'>24/226</span>
|
||||
</div>
|
||||
|
||||
|
||||
<div class='fl pad1y space-right2'>
|
||||
<span class="strong">22.2% </span>
|
||||
<span class="strong">9.52% </span>
|
||||
<span class="quiet">Lines</span>
|
||||
<span class='fraction'>254/1144</span>
|
||||
<span class='fraction'>109/1144</span>
|
||||
</div>
|
||||
|
||||
|
||||
@@ -110,17 +110,17 @@
|
||||
|
||||
<tr>
|
||||
<td class="file low" data-value="src/ai/nlp"><a href="src/ai/nlp/index.html">src/ai/nlp</a></td>
|
||||
<td data-value="25.37" class="pic low">
|
||||
<div class="chart"><div class="cover-fill" style="width: 25%"></div><div class="cover-empty" style="width: 75%"></div></div>
|
||||
<td data-value="0" class="pic low">
|
||||
<div class="chart"><div class="cover-fill" style="width: 0%"></div><div class="cover-empty" style="width: 100%"></div></div>
|
||||
</td>
|
||||
<td data-value="25.37" class="pct low">25.37%</td>
|
||||
<td data-value="134" class="abs low">34/134</td>
|
||||
<td data-value="23.8" class="pct low">23.8%</td>
|
||||
<td data-value="63" class="abs low">15/63</td>
|
||||
<td data-value="16.66" class="pct low">16.66%</td>
|
||||
<td data-value="30" class="abs low">5/30</td>
|
||||
<td data-value="25.95" class="pct low">25.95%</td>
|
||||
<td data-value="131" class="abs low">34/131</td>
|
||||
<td data-value="0" class="pct low">0%</td>
|
||||
<td data-value="134" class="abs low">0/134</td>
|
||||
<td data-value="0" class="pct low">0%</td>
|
||||
<td data-value="63" class="abs low">0/63</td>
|
||||
<td data-value="0" class="pct low">0%</td>
|
||||
<td data-value="30" class="abs low">0/30</td>
|
||||
<td data-value="0" class="pct low">0%</td>
|
||||
<td data-value="131" class="abs low">0/131</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
@@ -154,63 +154,63 @@
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td class="file high" data-value="src/config"><a href="src/config/index.html">src/config</a></td>
|
||||
<td data-value="100" class="pic high">
|
||||
<div class="chart"><div class="cover-fill cover-full" style="width: 100%"></div><div class="cover-empty" style="width: 0%"></div></div>
|
||||
<td class="file low" data-value="src/config"><a href="src/config/index.html">src/config</a></td>
|
||||
<td data-value="0" class="pic low">
|
||||
<div class="chart"><div class="cover-fill" style="width: 0%"></div><div class="cover-empty" style="width: 100%"></div></div>
|
||||
</td>
|
||||
<td data-value="100" class="pct high">100%</td>
|
||||
<td data-value="2" class="abs high">2/2</td>
|
||||
<td data-value="50" class="pct medium">50%</td>
|
||||
<td data-value="8" class="abs medium">4/8</td>
|
||||
<td data-value="0" class="pct low">0%</td>
|
||||
<td data-value="2" class="abs low">0/2</td>
|
||||
<td data-value="0" class="pct low">0%</td>
|
||||
<td data-value="8" class="abs low">0/8</td>
|
||||
<td data-value="100" class="pct high">100%</td>
|
||||
<td data-value="0" class="abs high">0/0</td>
|
||||
<td data-value="100" class="pct high">100%</td>
|
||||
<td data-value="2" class="abs high">2/2</td>
|
||||
<td data-value="0" class="pct low">0%</td>
|
||||
<td data-value="2" class="abs low">0/2</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td class="file high" data-value="src/context"><a href="src/context/index.html">src/context</a></td>
|
||||
<td data-value="95.55" class="pic high">
|
||||
<div class="chart"><div class="cover-fill" style="width: 95%"></div><div class="cover-empty" style="width: 5%"></div></div>
|
||||
<td data-value="86.66" class="pic high">
|
||||
<div class="chart"><div class="cover-fill" style="width: 86%"></div><div class="cover-empty" style="width: 14%"></div></div>
|
||||
</td>
|
||||
<td data-value="95.55" class="pct high">95.55%</td>
|
||||
<td data-value="90" class="abs high">86/90</td>
|
||||
<td data-value="85" class="pct high">85%</td>
|
||||
<td data-value="40" class="abs high">34/40</td>
|
||||
<td data-value="91.17" class="pct high">91.17%</td>
|
||||
<td data-value="34" class="abs high">31/34</td>
|
||||
<td data-value="95.4" class="pct high">95.4%</td>
|
||||
<td data-value="87" class="abs high">83/87</td>
|
||||
<td data-value="86.66" class="pct high">86.66%</td>
|
||||
<td data-value="90" class="abs high">78/90</td>
|
||||
<td data-value="60" class="pct high">60%</td>
|
||||
<td data-value="40" class="abs high">24/40</td>
|
||||
<td data-value="67.64" class="pct high">67.64%</td>
|
||||
<td data-value="34" class="abs high">23/34</td>
|
||||
<td data-value="87.35" class="pct high">87.35%</td>
|
||||
<td data-value="87" class="abs high">76/87</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td class="file low" data-value="src/hass"><a href="src/hass/index.html">src/hass</a></td>
|
||||
<td data-value="23.42" class="pic low">
|
||||
<div class="chart"><div class="cover-fill" style="width: 23%"></div><div class="cover-empty" style="width: 77%"></div></div>
|
||||
<td data-value="0" class="pic low">
|
||||
<div class="chart"><div class="cover-fill" style="width: 0%"></div><div class="cover-empty" style="width: 100%"></div></div>
|
||||
</td>
|
||||
<td data-value="23.42" class="pct low">23.42%</td>
|
||||
<td data-value="111" class="abs low">26/111</td>
|
||||
<td data-value="19.51" class="pct low">19.51%</td>
|
||||
<td data-value="41" class="abs low">8/41</td>
|
||||
<td data-value="13.04" class="pct low">13.04%</td>
|
||||
<td data-value="23" class="abs low">3/23</td>
|
||||
<td data-value="23.42" class="pct low">23.42%</td>
|
||||
<td data-value="111" class="abs low">26/111</td>
|
||||
<td data-value="0" class="pct low">0%</td>
|
||||
<td data-value="111" class="abs low">0/111</td>
|
||||
<td data-value="0" class="pct low">0%</td>
|
||||
<td data-value="41" class="abs low">0/41</td>
|
||||
<td data-value="0" class="pct low">0%</td>
|
||||
<td data-value="23" class="abs low">0/23</td>
|
||||
<td data-value="0" class="pct low">0%</td>
|
||||
<td data-value="111" class="abs low">0/111</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td class="file low" data-value="src/performance"><a href="src/performance/index.html">src/performance</a></td>
|
||||
<td data-value="26.86" class="pic low">
|
||||
<div class="chart"><div class="cover-fill" style="width: 26%"></div><div class="cover-empty" style="width: 74%"></div></div>
|
||||
<td data-value="0" class="pic low">
|
||||
<div class="chart"><div class="cover-fill" style="width: 0%"></div><div class="cover-empty" style="width: 100%"></div></div>
|
||||
</td>
|
||||
<td data-value="26.86" class="pct low">26.86%</td>
|
||||
<td data-value="67" class="abs low">18/67</td>
|
||||
<td data-value="63.63" class="pct medium">63.63%</td>
|
||||
<td data-value="22" class="abs medium">14/22</td>
|
||||
<td data-value="33.33" class="pct low">33.33%</td>
|
||||
<td data-value="21" class="abs low">7/21</td>
|
||||
<td data-value="28.33" class="pct low">28.33%</td>
|
||||
<td data-value="60" class="abs low">17/60</td>
|
||||
<td data-value="0" class="pct low">0%</td>
|
||||
<td data-value="67" class="abs low">0/67</td>
|
||||
<td data-value="0" class="pct low">0%</td>
|
||||
<td data-value="22" class="abs low">0/22</td>
|
||||
<td data-value="0" class="pct low">0%</td>
|
||||
<td data-value="21" class="abs low">0/21</td>
|
||||
<td data-value="0" class="pct low">0%</td>
|
||||
<td data-value="60" class="abs low">0/60</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
@@ -244,18 +244,18 @@
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td class="file medium" data-value="src/security"><a href="src/security/index.html">src/security</a></td>
|
||||
<td data-value="75.43" class="pic medium">
|
||||
<div class="chart"><div class="cover-fill" style="width: 75%"></div><div class="cover-empty" style="width: 25%"></div></div>
|
||||
<td class="file low" data-value="src/security"><a href="src/security/index.html">src/security</a></td>
|
||||
<td data-value="0" class="pic low">
|
||||
<div class="chart"><div class="cover-fill" style="width: 0%"></div><div class="cover-empty" style="width: 100%"></div></div>
|
||||
</td>
|
||||
<td data-value="75.43" class="pct medium">75.43%</td>
|
||||
<td data-value="57" class="abs medium">43/57</td>
|
||||
<td data-value="25" class="pct low">25%</td>
|
||||
<td data-value="20" class="abs low">5/20</td>
|
||||
<td data-value="57.14" class="pct medium">57.14%</td>
|
||||
<td data-value="7" class="abs medium">4/7</td>
|
||||
<td data-value="75" class="pct medium">75%</td>
|
||||
<td data-value="56" class="abs medium">42/56</td>
|
||||
<td data-value="0" class="pct low">0%</td>
|
||||
<td data-value="57" class="abs low">0/57</td>
|
||||
<td data-value="0" class="pct low">0%</td>
|
||||
<td data-value="20" class="abs low">0/20</td>
|
||||
<td data-value="0" class="pct low">0%</td>
|
||||
<td data-value="7" class="abs low">0/7</td>
|
||||
<td data-value="0" class="pct low">0%</td>
|
||||
<td data-value="56" class="abs low">0/56</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
@@ -275,17 +275,17 @@
|
||||
|
||||
<tr>
|
||||
<td class="file low" data-value="src/tools"><a href="src/tools/index.html">src/tools</a></td>
|
||||
<td data-value="29.5" class="pic low">
|
||||
<div class="chart"><div class="cover-fill" style="width: 29%"></div><div class="cover-empty" style="width: 71%"></div></div>
|
||||
<td data-value="0" class="pic low">
|
||||
<div class="chart"><div class="cover-fill" style="width: 0%"></div><div class="cover-empty" style="width: 100%"></div></div>
|
||||
</td>
|
||||
<td data-value="29.5" class="pct low">29.5%</td>
|
||||
<td data-value="61" class="abs low">18/61</td>
|
||||
<td data-value="22.22" class="pct low">22.22%</td>
|
||||
<td data-value="18" class="abs low">4/18</td>
|
||||
<td data-value="42.85" class="pct low">42.85%</td>
|
||||
<td data-value="14" class="abs low">6/14</td>
|
||||
<td data-value="29.31" class="pct low">29.31%</td>
|
||||
<td data-value="58" class="abs low">17/58</td>
|
||||
<td data-value="0" class="pct low">0%</td>
|
||||
<td data-value="61" class="abs low">0/61</td>
|
||||
<td data-value="0" class="pct low">0%</td>
|
||||
<td data-value="18" class="abs low">0/18</td>
|
||||
<td data-value="0" class="pct low">0%</td>
|
||||
<td data-value="14" class="abs low">0/14</td>
|
||||
<td data-value="0" class="pct low">0%</td>
|
||||
<td data-value="58" class="abs low">0/58</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
@@ -311,7 +311,7 @@
|
||||
<div class='footer quiet pad2 space-top1 center small'>
|
||||
Code coverage generated by
|
||||
<a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
|
||||
at 2025-01-30T18:59:31.394Z
|
||||
at 2025-01-30T19:05:31.249Z
|
||||
</div>
|
||||
<script src="prettify.js"></script>
|
||||
<script>
|
||||
|
||||
@@ -749,66 +749,66 @@ FN:97,(anonymous_2)
|
||||
FN:118,(anonymous_3)
|
||||
FN:142,(anonymous_4)
|
||||
FNF:5
|
||||
FNH:5
|
||||
FNDA:11,(anonymous_0)
|
||||
FNDA:13,(anonymous_1)
|
||||
FNDA:9,(anonymous_2)
|
||||
FNDA:9,(anonymous_3)
|
||||
FNDA:4,(anonymous_4)
|
||||
DA:19,11
|
||||
DA:63,13
|
||||
DA:71,13
|
||||
DA:72,52
|
||||
DA:73,195
|
||||
DA:74,195
|
||||
DA:75,9
|
||||
DA:76,9
|
||||
DA:77,9
|
||||
DA:90,13
|
||||
DA:91,4
|
||||
DA:94,13
|
||||
DA:99,9
|
||||
DA:100,9
|
||||
DA:103,9
|
||||
DA:104,1
|
||||
DA:108,9
|
||||
DA:109,9
|
||||
DA:110,27
|
||||
DA:111,2
|
||||
DA:115,9
|
||||
DA:123,9
|
||||
DA:126,9
|
||||
DA:127,1
|
||||
DA:128,3
|
||||
DA:129,1
|
||||
DA:135,9
|
||||
DA:136,1
|
||||
DA:139,9
|
||||
DA:147,4
|
||||
DA:148,1
|
||||
DA:158,3
|
||||
DA:159,1
|
||||
DA:169,2
|
||||
FNH:0
|
||||
FNDA:0,(anonymous_0)
|
||||
FNDA:0,(anonymous_1)
|
||||
FNDA:0,(anonymous_2)
|
||||
FNDA:0,(anonymous_3)
|
||||
FNDA:0,(anonymous_4)
|
||||
DA:19,0
|
||||
DA:63,0
|
||||
DA:71,0
|
||||
DA:72,0
|
||||
DA:73,0
|
||||
DA:74,0
|
||||
DA:75,0
|
||||
DA:76,0
|
||||
DA:77,0
|
||||
DA:90,0
|
||||
DA:91,0
|
||||
DA:94,0
|
||||
DA:99,0
|
||||
DA:100,0
|
||||
DA:103,0
|
||||
DA:104,0
|
||||
DA:108,0
|
||||
DA:109,0
|
||||
DA:110,0
|
||||
DA:111,0
|
||||
DA:115,0
|
||||
DA:123,0
|
||||
DA:126,0
|
||||
DA:127,0
|
||||
DA:128,0
|
||||
DA:129,0
|
||||
DA:135,0
|
||||
DA:136,0
|
||||
DA:139,0
|
||||
DA:147,0
|
||||
DA:148,0
|
||||
DA:158,0
|
||||
DA:159,0
|
||||
DA:169,0
|
||||
LF:34
|
||||
LH:34
|
||||
BRDA:74,0,0,9
|
||||
BRDA:76,1,0,9
|
||||
BRDA:90,2,0,4
|
||||
BRDA:103,3,0,1
|
||||
BRDA:110,4,0,2
|
||||
BRDA:126,5,0,1
|
||||
BRDA:128,6,0,1
|
||||
BRDA:135,7,0,1
|
||||
BRDA:135,8,0,9
|
||||
BRDA:135,8,1,1
|
||||
BRDA:147,9,0,1
|
||||
BRDA:158,10,0,1
|
||||
BRDA:161,11,0,1
|
||||
LH:0
|
||||
BRDA:74,0,0,0
|
||||
BRDA:76,1,0,0
|
||||
BRDA:90,2,0,0
|
||||
BRDA:103,3,0,0
|
||||
BRDA:110,4,0,0
|
||||
BRDA:126,5,0,0
|
||||
BRDA:128,6,0,0
|
||||
BRDA:135,7,0,0
|
||||
BRDA:135,8,0,0
|
||||
BRDA:135,8,1,0
|
||||
BRDA:147,9,0,0
|
||||
BRDA:158,10,0,0
|
||||
BRDA:161,11,0,0
|
||||
BRDA:161,11,1,0
|
||||
BRDA:171,12,0,2
|
||||
BRDA:171,12,1,1
|
||||
BRDA:171,12,0,0
|
||||
BRDA:171,12,1,0
|
||||
BRF:16
|
||||
BRH:15
|
||||
BRH:0
|
||||
end_of_record
|
||||
TN:
|
||||
SF:src/ai/nlp/processor.ts
|
||||
@@ -927,20 +927,20 @@ TN:
|
||||
SF:src/config/hass.config.ts
|
||||
FNF:0
|
||||
FNH:0
|
||||
DA:4,1
|
||||
DA:6,1
|
||||
DA:4,0
|
||||
DA:6,0
|
||||
LF:2
|
||||
LH:2
|
||||
BRDA:7,0,0,1
|
||||
LH:0
|
||||
BRDA:7,0,0,0
|
||||
BRDA:7,0,1,0
|
||||
BRDA:8,1,0,1
|
||||
BRDA:8,1,0,0
|
||||
BRDA:8,1,1,0
|
||||
BRDA:9,2,0,1
|
||||
BRDA:9,2,0,0
|
||||
BRDA:9,2,1,0
|
||||
BRDA:10,3,0,1
|
||||
BRDA:10,3,0,0
|
||||
BRDA:10,3,1,0
|
||||
BRF:8
|
||||
BRH:4
|
||||
BRH:0
|
||||
end_of_record
|
||||
TN:
|
||||
SF:src/context/index.ts
|
||||
@@ -979,38 +979,38 @@ FN:210,(anonymous_31)
|
||||
FN:214,(anonymous_32)
|
||||
FN:221,(anonymous_33)
|
||||
FNF:34
|
||||
FNH:31
|
||||
FNH:23
|
||||
FNDA:1,(anonymous_0)
|
||||
FNDA:1,(anonymous_1)
|
||||
FNDA:11,(anonymous_2)
|
||||
FNDA:18,(anonymous_3)
|
||||
FNDA:5,(anonymous_4)
|
||||
FNDA:5,(anonymous_2)
|
||||
FNDA:10,(anonymous_3)
|
||||
FNDA:3,(anonymous_4)
|
||||
FNDA:1,(anonymous_5)
|
||||
FNDA:0,(anonymous_6)
|
||||
FNDA:7,(anonymous_7)
|
||||
FNDA:2,(anonymous_7)
|
||||
FNDA:1,(anonymous_8)
|
||||
FNDA:1,(anonymous_9)
|
||||
FNDA:5,(anonymous_10)
|
||||
FNDA:3,(anonymous_10)
|
||||
FNDA:0,(anonymous_11)
|
||||
FNDA:3,(anonymous_12)
|
||||
FNDA:1,(anonymous_13)
|
||||
FNDA:3,(anonymous_14)
|
||||
FNDA:4,(anonymous_15)
|
||||
FNDA:13,(anonymous_16)
|
||||
FNDA:12,(anonymous_17)
|
||||
FNDA:9,(anonymous_18)
|
||||
FNDA:2,(anonymous_14)
|
||||
FNDA:3,(anonymous_15)
|
||||
FNDA:7,(anonymous_16)
|
||||
FNDA:4,(anonymous_17)
|
||||
FNDA:4,(anonymous_18)
|
||||
FNDA:1,(anonymous_19)
|
||||
FNDA:3,(anonymous_20)
|
||||
FNDA:1,(anonymous_21)
|
||||
FNDA:3,(anonymous_22)
|
||||
FNDA:0,(anonymous_20)
|
||||
FNDA:0,(anonymous_21)
|
||||
FNDA:0,(anonymous_22)
|
||||
FNDA:0,(anonymous_23)
|
||||
FNDA:3,(anonymous_24)
|
||||
FNDA:1,(anonymous_25)
|
||||
FNDA:3,(anonymous_26)
|
||||
FNDA:3,(anonymous_27)
|
||||
FNDA:0,(anonymous_24)
|
||||
FNDA:0,(anonymous_25)
|
||||
FNDA:0,(anonymous_26)
|
||||
FNDA:0,(anonymous_27)
|
||||
FNDA:1,(anonymous_28)
|
||||
FNDA:1,(anonymous_29)
|
||||
FNDA:1,(anonymous_30)
|
||||
FNDA:2,(anonymous_29)
|
||||
FNDA:0,(anonymous_30)
|
||||
FNDA:1,(anonymous_31)
|
||||
FNDA:1,(anonymous_32)
|
||||
FNDA:1,(anonymous_33)
|
||||
@@ -1028,70 +1028,70 @@ DA:27,1
|
||||
DA:28,1
|
||||
DA:29,1
|
||||
DA:30,1
|
||||
DA:43,11
|
||||
DA:44,11
|
||||
DA:45,11
|
||||
DA:46,11
|
||||
DA:49,11
|
||||
DA:54,18
|
||||
DA:55,18
|
||||
DA:59,5
|
||||
DA:60,5
|
||||
DA:62,5
|
||||
DA:65,5
|
||||
DA:70,5
|
||||
DA:71,5
|
||||
DA:43,5
|
||||
DA:44,5
|
||||
DA:45,5
|
||||
DA:46,5
|
||||
DA:49,5
|
||||
DA:54,10
|
||||
DA:55,10
|
||||
DA:59,3
|
||||
DA:60,3
|
||||
DA:62,3
|
||||
DA:65,3
|
||||
DA:70,3
|
||||
DA:71,3
|
||||
DA:76,1
|
||||
DA:77,1
|
||||
DA:78,1
|
||||
DA:80,1
|
||||
DA:81,0
|
||||
DA:83,1
|
||||
DA:89,7
|
||||
DA:90,7
|
||||
DA:89,2
|
||||
DA:90,2
|
||||
DA:94,1
|
||||
DA:95,1
|
||||
DA:97,1
|
||||
DA:98,1
|
||||
DA:99,1
|
||||
DA:105,5
|
||||
DA:106,5
|
||||
DA:107,5
|
||||
DA:105,3
|
||||
DA:106,3
|
||||
DA:107,3
|
||||
DA:108,0
|
||||
DA:110,5
|
||||
DA:110,3
|
||||
DA:114,0
|
||||
DA:119,3
|
||||
DA:123,1
|
||||
DA:124,3
|
||||
DA:133,4
|
||||
DA:134,4
|
||||
DA:136,4
|
||||
DA:137,13
|
||||
DA:138,8
|
||||
DA:140,8
|
||||
DA:142,12
|
||||
DA:146,9
|
||||
DA:147,9
|
||||
DA:148,9
|
||||
DA:149,9
|
||||
DA:150,9
|
||||
DA:155,4
|
||||
DA:156,4
|
||||
DA:124,2
|
||||
DA:133,3
|
||||
DA:134,3
|
||||
DA:136,3
|
||||
DA:137,7
|
||||
DA:138,5
|
||||
DA:140,5
|
||||
DA:142,4
|
||||
DA:146,4
|
||||
DA:147,4
|
||||
DA:148,4
|
||||
DA:149,4
|
||||
DA:150,4
|
||||
DA:155,3
|
||||
DA:156,3
|
||||
DA:170,1
|
||||
DA:171,3
|
||||
DA:172,1
|
||||
DA:171,0
|
||||
DA:172,0
|
||||
DA:174,1
|
||||
DA:175,3
|
||||
DA:175,0
|
||||
DA:176,0
|
||||
DA:178,1
|
||||
DA:179,3
|
||||
DA:180,1
|
||||
DA:179,0
|
||||
DA:180,0
|
||||
DA:182,1
|
||||
DA:184,3
|
||||
DA:187,3
|
||||
DA:184,0
|
||||
DA:187,0
|
||||
DA:192,1
|
||||
DA:200,1
|
||||
DA:201,1
|
||||
DA:201,2
|
||||
DA:202,1
|
||||
DA:206,1
|
||||
DA:207,1
|
||||
@@ -1102,12 +1102,12 @@ DA:220,1
|
||||
DA:221,1
|
||||
DA:226,1
|
||||
LF:87
|
||||
LH:83
|
||||
LH:76
|
||||
BRDA:4,0,0,1
|
||||
BRDA:4,0,1,1
|
||||
BRDA:25,1,0,1
|
||||
BRDA:25,1,1,1
|
||||
BRDA:60,2,0,5
|
||||
BRDA:60,2,0,3
|
||||
BRDA:77,3,0,1
|
||||
BRDA:81,4,0,0
|
||||
BRDA:81,4,1,0
|
||||
@@ -1115,36 +1115,36 @@ BRDA:95,5,0,1
|
||||
BRDA:95,5,1,1
|
||||
BRDA:95,5,2,1
|
||||
BRDA:97,6,0,1
|
||||
BRDA:105,7,0,5
|
||||
BRDA:105,7,0,3
|
||||
BRDA:105,7,1,3
|
||||
BRDA:107,8,0,0
|
||||
BRDA:114,9,0,0
|
||||
BRDA:114,9,1,0
|
||||
BRDA:131,10,0,2
|
||||
BRDA:137,11,0,5
|
||||
BRDA:137,12,0,13
|
||||
BRDA:137,12,1,9
|
||||
BRDA:142,13,0,12
|
||||
BRDA:142,13,1,7
|
||||
BRDA:142,13,2,9
|
||||
BRDA:137,11,0,2
|
||||
BRDA:137,12,0,7
|
||||
BRDA:137,12,1,5
|
||||
BRDA:142,13,0,4
|
||||
BRDA:142,13,1,2
|
||||
BRDA:142,13,2,4
|
||||
BRDA:142,13,3,0
|
||||
BRDA:146,14,0,5
|
||||
BRDA:146,14,1,4
|
||||
BRDA:148,15,0,9
|
||||
BRDA:171,16,0,3
|
||||
BRDA:171,16,1,1
|
||||
BRDA:175,17,0,3
|
||||
BRDA:175,17,1,2
|
||||
BRDA:179,18,0,3
|
||||
BRDA:179,18,1,2
|
||||
BRDA:184,19,0,3
|
||||
BRDA:184,19,1,1
|
||||
BRDA:187,20,0,3
|
||||
BRDA:187,20,1,1
|
||||
BRDA:146,14,0,2
|
||||
BRDA:146,14,1,2
|
||||
BRDA:148,15,0,4
|
||||
BRDA:171,16,0,0
|
||||
BRDA:171,16,1,0
|
||||
BRDA:175,17,0,0
|
||||
BRDA:175,17,1,0
|
||||
BRDA:179,18,0,0
|
||||
BRDA:179,18,1,0
|
||||
BRDA:184,19,0,0
|
||||
BRDA:184,19,1,0
|
||||
BRDA:187,20,0,0
|
||||
BRDA:187,20,1,0
|
||||
BRDA:201,21,0,1
|
||||
BRDA:215,22,0,1
|
||||
BRF:40
|
||||
BRH:34
|
||||
BRH:24
|
||||
end_of_record
|
||||
TN:
|
||||
SF:src/hass/index.ts
|
||||
@@ -1172,7 +1172,7 @@ FN:400,(anonymous_20)
|
||||
FN:412,(anonymous_21)
|
||||
FN:421,get_hass
|
||||
FNF:23
|
||||
FNH:3
|
||||
FNH:0
|
||||
FNDA:0,(anonymous_0)
|
||||
FNDA:0,(anonymous_1)
|
||||
FNDA:0,(anonymous_2)
|
||||
@@ -1188,17 +1188,17 @@ FNDA:0,(anonymous_11)
|
||||
FNDA:0,(anonymous_12)
|
||||
FNDA:0,(anonymous_13)
|
||||
FNDA:0,(anonymous_14)
|
||||
FNDA:1,(anonymous_15)
|
||||
FNDA:1,(anonymous_16)
|
||||
FNDA:0,(anonymous_15)
|
||||
FNDA:0,(anonymous_16)
|
||||
FNDA:0,(anonymous_17)
|
||||
FNDA:0,(anonymous_18)
|
||||
FNDA:0,(anonymous_19)
|
||||
FNDA:0,(anonymous_20)
|
||||
FNDA:0,(anonymous_21)
|
||||
FNDA:3,get_hass
|
||||
DA:89,1
|
||||
FNDA:0,get_hass
|
||||
DA:89,0
|
||||
DA:101,0
|
||||
DA:143,1
|
||||
DA:143,0
|
||||
DA:159,0
|
||||
DA:160,0
|
||||
DA:161,0
|
||||
@@ -1262,20 +1262,20 @@ DA:286,0
|
||||
DA:291,0
|
||||
DA:292,0
|
||||
DA:293,0
|
||||
DA:333,1
|
||||
DA:334,1
|
||||
DA:335,1
|
||||
DA:340,1
|
||||
DA:341,1
|
||||
DA:342,1
|
||||
DA:343,1
|
||||
DA:344,1
|
||||
DA:345,1
|
||||
DA:346,1
|
||||
DA:347,1
|
||||
DA:348,1
|
||||
DA:349,1
|
||||
DA:350,1
|
||||
DA:333,0
|
||||
DA:334,0
|
||||
DA:335,0
|
||||
DA:340,0
|
||||
DA:341,0
|
||||
DA:342,0
|
||||
DA:343,0
|
||||
DA:344,0
|
||||
DA:345,0
|
||||
DA:346,0
|
||||
DA:347,0
|
||||
DA:348,0
|
||||
DA:349,0
|
||||
DA:350,0
|
||||
DA:354,0
|
||||
DA:361,0
|
||||
DA:362,0
|
||||
@@ -1295,29 +1295,29 @@ DA:406,0
|
||||
DA:409,0
|
||||
DA:413,0
|
||||
DA:414,0
|
||||
DA:419,1
|
||||
DA:422,3
|
||||
DA:423,2
|
||||
DA:424,2
|
||||
DA:427,1
|
||||
DA:429,1
|
||||
DA:419,0
|
||||
DA:422,0
|
||||
DA:423,0
|
||||
DA:424,0
|
||||
DA:427,0
|
||||
DA:429,0
|
||||
DA:430,0
|
||||
DA:431,0
|
||||
DA:434,1
|
||||
DA:435,1
|
||||
DA:436,1
|
||||
DA:438,1
|
||||
DA:434,0
|
||||
DA:435,0
|
||||
DA:436,0
|
||||
DA:438,0
|
||||
LF:111
|
||||
LH:26
|
||||
LH:0
|
||||
BRDA:101,0,0,0
|
||||
BRDA:101,0,1,0
|
||||
BRDA:145,1,0,1
|
||||
BRDA:145,1,0,0
|
||||
BRDA:145,1,1,0
|
||||
BRDA:146,2,0,1
|
||||
BRDA:146,2,0,0
|
||||
BRDA:146,2,1,0
|
||||
BRDA:149,3,0,1
|
||||
BRDA:149,3,0,0
|
||||
BRDA:149,3,1,0
|
||||
BRDA:150,4,0,1
|
||||
BRDA:150,4,0,0
|
||||
BRDA:150,4,1,0
|
||||
BRDA:172,5,0,0
|
||||
BRDA:184,6,0,0
|
||||
@@ -1345,13 +1345,13 @@ BRDA:377,19,0,0
|
||||
BRDA:395,20,0,0
|
||||
BRDA:401,21,0,0
|
||||
BRDA:413,22,0,0
|
||||
BRDA:421,23,0,3
|
||||
BRDA:422,24,0,2
|
||||
BRDA:421,23,0,0
|
||||
BRDA:422,24,0,0
|
||||
BRDA:429,25,0,0
|
||||
BRDA:429,26,0,1
|
||||
BRDA:429,26,1,1
|
||||
BRDA:429,26,0,0
|
||||
BRDA:429,26,1,0
|
||||
BRF:41
|
||||
BRH:8
|
||||
BRH:0
|
||||
end_of_record
|
||||
TN:
|
||||
SF:src/performance/index.ts
|
||||
@@ -1377,19 +1377,19 @@ FN:203,(anonymous_19)
|
||||
FN:208,(anonymous_20)
|
||||
FN:212,(anonymous_21)
|
||||
FNF:21
|
||||
FNH:7
|
||||
FNDA:1,(anonymous_1)
|
||||
FNH:0
|
||||
FNDA:0,(anonymous_1)
|
||||
FNDA:0,(anonymous_2)
|
||||
FNDA:4,(anonymous_3)
|
||||
FNDA:0,(anonymous_3)
|
||||
FNDA:0,(anonymous_4)
|
||||
FNDA:5,(anonymous_5)
|
||||
FNDA:0,(anonymous_5)
|
||||
FNDA:0,(anonymous_6)
|
||||
FNDA:0,(anonymous_7)
|
||||
FNDA:0,(anonymous_8)
|
||||
FNDA:2,(anonymous_9)
|
||||
FNDA:5,(anonymous_10)
|
||||
FNDA:1,(anonymous_11)
|
||||
FNDA:3,(anonymous_12)
|
||||
FNDA:0,(anonymous_9)
|
||||
FNDA:0,(anonymous_10)
|
||||
FNDA:0,(anonymous_11)
|
||||
FNDA:0,(anonymous_12)
|
||||
FNDA:0,(anonymous_13)
|
||||
FNDA:0,(anonymous_14)
|
||||
FNDA:0,(anonymous_15)
|
||||
@@ -1399,15 +1399,15 @@ FNDA:0,(anonymous_18)
|
||||
FNDA:0,(anonymous_19)
|
||||
FNDA:0,(anonymous_20)
|
||||
FNDA:0,(anonymous_21)
|
||||
DA:20,5
|
||||
DA:31,5
|
||||
DA:32,5
|
||||
DA:37,5
|
||||
DA:38,5
|
||||
DA:43,1
|
||||
DA:20,0
|
||||
DA:31,0
|
||||
DA:32,0
|
||||
DA:37,0
|
||||
DA:38,0
|
||||
DA:43,0
|
||||
DA:44,0
|
||||
DA:45,0
|
||||
DA:51,4
|
||||
DA:51,0
|
||||
DA:52,0
|
||||
DA:58,0
|
||||
DA:59,0
|
||||
@@ -1418,8 +1418,8 @@ DA:75,0
|
||||
DA:82,0
|
||||
DA:88,0
|
||||
DA:95,0
|
||||
DA:100,5
|
||||
DA:101,5
|
||||
DA:100,0
|
||||
DA:101,0
|
||||
DA:106,0
|
||||
DA:107,0
|
||||
DA:112,0
|
||||
@@ -1430,12 +1430,12 @@ DA:122,0
|
||||
DA:123,0
|
||||
DA:124,0
|
||||
DA:125,0
|
||||
DA:139,2
|
||||
DA:140,5
|
||||
DA:152,1
|
||||
DA:153,1
|
||||
DA:154,3
|
||||
DA:160,1
|
||||
DA:139,0
|
||||
DA:140,0
|
||||
DA:152,0
|
||||
DA:153,0
|
||||
DA:154,0
|
||||
DA:160,0
|
||||
DA:164,0
|
||||
DA:165,0
|
||||
DA:167,0
|
||||
@@ -1457,34 +1457,34 @@ DA:209,0
|
||||
DA:210,0
|
||||
DA:211,0
|
||||
DA:212,0
|
||||
DA:219,1
|
||||
DA:222,1
|
||||
DA:219,0
|
||||
DA:222,0
|
||||
LF:60
|
||||
LH:17
|
||||
BRDA:27,0,0,1
|
||||
BRDA:28,1,0,5
|
||||
BRDA:29,2,0,5
|
||||
BRDA:33,3,0,5
|
||||
BRDA:33,3,1,1
|
||||
BRDA:34,4,0,5
|
||||
BRDA:34,4,1,1
|
||||
BRDA:35,5,0,5
|
||||
BRDA:35,5,1,1
|
||||
LH:0
|
||||
BRDA:27,0,0,0
|
||||
BRDA:28,1,0,0
|
||||
BRDA:29,2,0,0
|
||||
BRDA:33,3,0,0
|
||||
BRDA:33,3,1,0
|
||||
BRDA:34,4,0,0
|
||||
BRDA:34,4,1,0
|
||||
BRDA:35,5,0,0
|
||||
BRDA:35,5,1,0
|
||||
BRDA:51,6,0,0
|
||||
BRDA:113,7,0,0
|
||||
BRDA:124,8,0,0
|
||||
BRDA:136,9,0,1
|
||||
BRDA:140,10,0,5
|
||||
BRDA:140,10,1,4
|
||||
BRDA:140,10,2,4
|
||||
BRDA:140,10,3,3
|
||||
BRDA:136,9,0,0
|
||||
BRDA:140,10,0,0
|
||||
BRDA:140,10,1,0
|
||||
BRDA:140,10,2,0
|
||||
BRDA:140,10,3,0
|
||||
BRDA:150,11,0,0
|
||||
BRDA:153,12,0,0
|
||||
BRDA:167,13,0,0
|
||||
BRDA:168,14,0,0
|
||||
BRDA:209,15,0,0
|
||||
BRF:22
|
||||
BRH:14
|
||||
BRH:0
|
||||
end_of_record
|
||||
TN:
|
||||
SF:src/platforms/macos/integration.ts
|
||||
@@ -1652,55 +1652,55 @@ FN:129,validateRequest
|
||||
FN:156,sanitizeInput
|
||||
FN:167,errorHandler
|
||||
FNF:7
|
||||
FNH:4
|
||||
FNDA:22,(anonymous_0)
|
||||
FNDA:15,(anonymous_1)
|
||||
FNDA:7,(anonymous_2)
|
||||
FNDA:12,(anonymous_3)
|
||||
FNH:0
|
||||
FNDA:0,(anonymous_0)
|
||||
FNDA:0,(anonymous_1)
|
||||
FNDA:0,(anonymous_2)
|
||||
FNDA:0,(anonymous_3)
|
||||
FNDA:0,validateRequest
|
||||
FNDA:0,sanitizeInput
|
||||
FNDA:0,errorHandler
|
||||
DA:8,3
|
||||
DA:9,3
|
||||
DA:10,3
|
||||
DA:13,3
|
||||
DA:20,3
|
||||
DA:43,3
|
||||
DA:47,3
|
||||
DA:48,3
|
||||
DA:49,3
|
||||
DA:50,3
|
||||
DA:51,3
|
||||
DA:52,3
|
||||
DA:53,3
|
||||
DA:56,22
|
||||
DA:66,15
|
||||
DA:67,15
|
||||
DA:68,15
|
||||
DA:69,15
|
||||
DA:73,15
|
||||
DA:77,14
|
||||
DA:79,14
|
||||
DA:83,7
|
||||
DA:84,7
|
||||
DA:85,7
|
||||
DA:86,7
|
||||
DA:90,7
|
||||
DA:91,7
|
||||
DA:93,7
|
||||
DA:96,6
|
||||
DA:98,6
|
||||
DA:102,12
|
||||
DA:104,11
|
||||
DA:106,11
|
||||
DA:107,4
|
||||
DA:111,7
|
||||
DA:112,7
|
||||
DA:113,6
|
||||
DA:116,6
|
||||
DA:117,5
|
||||
DA:121,1
|
||||
DA:123,1
|
||||
DA:8,0
|
||||
DA:9,0
|
||||
DA:10,0
|
||||
DA:13,0
|
||||
DA:20,0
|
||||
DA:43,0
|
||||
DA:47,0
|
||||
DA:48,0
|
||||
DA:49,0
|
||||
DA:50,0
|
||||
DA:51,0
|
||||
DA:52,0
|
||||
DA:53,0
|
||||
DA:56,0
|
||||
DA:66,0
|
||||
DA:67,0
|
||||
DA:68,0
|
||||
DA:69,0
|
||||
DA:73,0
|
||||
DA:77,0
|
||||
DA:79,0
|
||||
DA:83,0
|
||||
DA:84,0
|
||||
DA:85,0
|
||||
DA:86,0
|
||||
DA:90,0
|
||||
DA:91,0
|
||||
DA:93,0
|
||||
DA:96,0
|
||||
DA:98,0
|
||||
DA:102,0
|
||||
DA:104,0
|
||||
DA:106,0
|
||||
DA:107,0
|
||||
DA:111,0
|
||||
DA:112,0
|
||||
DA:113,0
|
||||
DA:116,0
|
||||
DA:117,0
|
||||
DA:121,0
|
||||
DA:123,0
|
||||
DA:131,0
|
||||
DA:132,0
|
||||
DA:138,0
|
||||
@@ -1715,14 +1715,14 @@ DA:161,0
|
||||
DA:163,0
|
||||
DA:168,0
|
||||
DA:169,0
|
||||
DA:176,3
|
||||
DA:176,0
|
||||
LF:56
|
||||
LH:42
|
||||
BRDA:102,0,0,1
|
||||
BRDA:106,1,0,4
|
||||
BRDA:116,2,0,5
|
||||
BRDA:116,3,0,6
|
||||
BRDA:116,3,1,5
|
||||
LH:0
|
||||
BRDA:102,0,0,0
|
||||
BRDA:106,1,0,0
|
||||
BRDA:116,2,0,0
|
||||
BRDA:116,3,0,0
|
||||
BRDA:116,3,1,0
|
||||
BRDA:131,4,0,0
|
||||
BRDA:131,5,0,0
|
||||
BRDA:131,5,1,0
|
||||
@@ -1739,7 +1739,7 @@ BRDA:157,11,1,0
|
||||
BRDA:171,12,0,0
|
||||
BRDA:171,12,1,0
|
||||
BRF:20
|
||||
BRH:5
|
||||
BRH:0
|
||||
end_of_record
|
||||
TN:
|
||||
SF:src/sse/index.ts
|
||||
@@ -1959,34 +1959,34 @@ FN:143,(anonymous_12)
|
||||
FN:178,(anonymous_13)
|
||||
FN:187,(anonymous_14)
|
||||
FNF:14
|
||||
FNH:6
|
||||
FNDA:1,(anonymous_1)
|
||||
FNDA:1,(anonymous_2)
|
||||
FNDA:14,(anonymous_3)
|
||||
FNDA:42,(anonymous_4)
|
||||
FNH:0
|
||||
FNDA:0,(anonymous_1)
|
||||
FNDA:0,(anonymous_2)
|
||||
FNDA:0,(anonymous_3)
|
||||
FNDA:0,(anonymous_4)
|
||||
FNDA:0,(anonymous_5)
|
||||
FNDA:0,(anonymous_6)
|
||||
FNDA:0,(anonymous_7)
|
||||
FNDA:0,(anonymous_8)
|
||||
FNDA:0,(anonymous_9)
|
||||
FNDA:0,(anonymous_10)
|
||||
FNDA:1,registerTool
|
||||
FNDA:1,(anonymous_12)
|
||||
FNDA:0,registerTool
|
||||
FNDA:0,(anonymous_12)
|
||||
FNDA:0,(anonymous_13)
|
||||
FNDA:0,(anonymous_14)
|
||||
DA:5,1
|
||||
DA:6,1
|
||||
DA:7,1
|
||||
DA:8,1
|
||||
DA:12,1
|
||||
DA:13,1
|
||||
DA:14,1
|
||||
DA:15,1
|
||||
DA:48,14
|
||||
DA:49,14
|
||||
DA:50,14
|
||||
DA:54,14
|
||||
DA:55,42
|
||||
DA:5,0
|
||||
DA:6,0
|
||||
DA:7,0
|
||||
DA:8,0
|
||||
DA:12,0
|
||||
DA:13,0
|
||||
DA:14,0
|
||||
DA:15,0
|
||||
DA:48,0
|
||||
DA:49,0
|
||||
DA:50,0
|
||||
DA:54,0
|
||||
DA:55,0
|
||||
DA:61,0
|
||||
DA:62,0
|
||||
DA:67,0
|
||||
@@ -2019,10 +2019,10 @@ DA:129,0
|
||||
DA:130,0
|
||||
DA:131,0
|
||||
DA:132,0
|
||||
DA:139,1
|
||||
DA:143,1
|
||||
DA:144,1
|
||||
DA:158,1
|
||||
DA:139,0
|
||||
DA:143,0
|
||||
DA:144,0
|
||||
DA:158,0
|
||||
DA:159,0
|
||||
DA:160,0
|
||||
DA:161,0
|
||||
@@ -2033,11 +2033,11 @@ DA:181,0
|
||||
DA:183,0
|
||||
DA:189,0
|
||||
LF:58
|
||||
LH:17
|
||||
BRDA:5,0,0,1
|
||||
BRDA:5,0,1,1
|
||||
BRDA:12,1,0,1
|
||||
BRDA:12,1,1,1
|
||||
LH:0
|
||||
BRDA:5,0,0,0
|
||||
BRDA:5,0,1,0
|
||||
BRDA:12,1,0,0
|
||||
BRDA:12,1,1,0
|
||||
BRDA:73,2,0,0
|
||||
BRDA:80,3,0,0
|
||||
BRDA:85,4,0,0
|
||||
@@ -2053,7 +2053,7 @@ BRDA:131,12,0,0
|
||||
BRDA:131,13,0,0
|
||||
BRDA:131,13,1,0
|
||||
BRF:18
|
||||
BRH:4
|
||||
BRH:0
|
||||
end_of_record
|
||||
TN:
|
||||
SF:src/websocket/client.ts
|
||||
|
||||
@@ -26,14 +26,32 @@ module.exports = {
|
||||
setupFilesAfterEnv: ['<rootDir>/jest.setup.ts'],
|
||||
testMatch: [
|
||||
'**/__tests__/helpers.test.ts',
|
||||
'**/__tests__/schemas/devices.test.ts'
|
||||
'**/__tests__/schemas/devices.test.ts',
|
||||
'**/__tests__/context/index.test.ts'
|
||||
],
|
||||
globals: {
|
||||
'ts-jest': {
|
||||
useESM: true,
|
||||
},
|
||||
},
|
||||
collectCoverage: false,
|
||||
collectCoverage: true,
|
||||
coverageDirectory: 'coverage',
|
||||
coverageReporters: ['text', 'lcov', 'clover', 'html'],
|
||||
collectCoverageFrom: [
|
||||
'src/**/*.ts',
|
||||
'!src/**/*.d.ts',
|
||||
'!src/**/*.test.ts',
|
||||
'!src/types/**/*',
|
||||
'!src/polyfills.ts'
|
||||
],
|
||||
coverageThreshold: {
|
||||
global: {
|
||||
branches: 50,
|
||||
functions: 50,
|
||||
lines: 50,
|
||||
statements: 50
|
||||
}
|
||||
},
|
||||
verbose: true,
|
||||
testTimeout: 30000
|
||||
};
|
||||
Reference in New Issue
Block a user