mirror of
https://github.com/stan-smith/FossFLOW.git
synced 2025-12-23 22:48:57 -05:00
fix: correct rectangle reducer and update CI workflow with build step
- Remove incorrect scene deletion from rectangle reducer (rectangles only exist in model) - Update rectangle tests to reflect correct behavior - Add npm build step to CI workflow to catch build errors early
This commit is contained in:
6
.github/workflows/test.yml
vendored
6
.github/workflows/test.yml
vendored
@@ -51,5 +51,7 @@ jobs:
|
||||
path: |
|
||||
packages/*/test-results/
|
||||
test-results/
|
||||
if-no-files-found: ignore
|
||||
retention-days: 7
|
||||
retention-days: 7
|
||||
|
||||
- name: Run NPM build to check there are no build errors
|
||||
run: npm build
|
||||
@@ -65,9 +65,6 @@ describe('rectangle reducer', () => {
|
||||
grid: { enabled: true, size: 10, style: 'dots' },
|
||||
connectors: {},
|
||||
viewItems: {},
|
||||
rectangles: {
|
||||
'rect1': { /* scene data if any */ }
|
||||
},
|
||||
textBoxes: {}
|
||||
}
|
||||
};
|
||||
@@ -249,14 +246,13 @@ describe('rectangle reducer', () => {
|
||||
});
|
||||
|
||||
describe('deleteRectangle', () => {
|
||||
it('should delete a rectangle from both model and scene', () => {
|
||||
it('should delete a rectangle from model', () => {
|
||||
const result = deleteRectangle('rect1', mockContext);
|
||||
|
||||
// Check rectangle is removed from model
|
||||
expect(result.model.views[0].rectangles).toHaveLength(0);
|
||||
|
||||
// Check rectangle is removed from scene
|
||||
expect(result.scene.rectangles['rect1']).toBeUndefined();
|
||||
// Rectangles don't have scene data - only stored in model
|
||||
});
|
||||
|
||||
it('should throw error when rectangle does not exist', () => {
|
||||
@@ -289,16 +285,13 @@ describe('rectangle reducer', () => {
|
||||
};
|
||||
|
||||
mockState.model.views[0].rectangles = [mockRectangle, rect2];
|
||||
mockState.scene.rectangles['rect2'] = {};
|
||||
|
||||
const result = deleteRectangle('rect1', mockContext);
|
||||
|
||||
expect(result.model.views[0].rectangles).toHaveLength(1);
|
||||
expect(result.model.views[0].rectangles![0].id).toBe('rect2');
|
||||
|
||||
// Verify proper scene cleanup
|
||||
expect(result.scene.rectangles['rect1']).toBeUndefined();
|
||||
expect(result.scene.rectangles['rect2']).toBeDefined();
|
||||
// Rectangles don't have scene data - only verify model is updated
|
||||
});
|
||||
});
|
||||
|
||||
|
||||
@@ -53,7 +53,7 @@ export const deleteRectangle = (
|
||||
|
||||
const newState = produce(state, (draft) => {
|
||||
draft.model.views[view.index].rectangles?.splice(rectangle.index, 1);
|
||||
delete draft.scene.rectangles[id];
|
||||
// Rectangles don't have scene data - they're only stored in the model
|
||||
});
|
||||
|
||||
return newState;
|
||||
|
||||
Reference in New Issue
Block a user