0
0
mirror of https://github.com/naturalcrit/homebrewery.git synced 2026-01-03 23:32:58 +00:00
Fix author deletion #2674
This commit is contained in:
Trevor Buckner
2023-02-18 13:48:49 -05:00
committed by GitHub
4 changed files with 22 additions and 5 deletions

2
.gitignore vendored
View File

@@ -12,3 +12,5 @@ todo.md
startDB.bat startDB.bat
startMViewer.bat startMViewer.bat
.vscode .vscode
coverage

View File

@@ -61,6 +61,16 @@ pre {
## changelog ## changelog
For a full record of development, visit our [Github Page](https://github.com/naturalcrit/homebrewery). For a full record of development, visit our [Github Page](https://github.com/naturalcrit/homebrewery).
### Saturday 18/02/2023 - v3.6.1
{{taskList
##### G-Ambatte
* [x] Fix users not being removed from Authors list correctly
Fixes issues [#2674](https://github.com/naturalcrit/homebrewery/issues/2674)
}}
### Friday 23/01/2023 - v3.6.0 ### Friday 23/01/2023 - v3.6.0
{{taskList {{taskList
##### calculuschild ##### calculuschild

View File

@@ -317,8 +317,7 @@ If you believe you should have access to this brew, ask the file owner to invite
brew.textBin = zlib.deflateRawSync(brew.text); brew.textBin = zlib.deflateRawSync(brew.text);
brew.text = undefined; brew.text = undefined;
} }
brew.markModified('authors'); //Mongo will not properly update arrays without markModified()
// Otherwise, save the brew with updated author list
await brew.save() await brew.save()
.catch((err)=>{ .catch((err)=>{
throw { status: 500, message: err }; throw { status: 500, message: err };

View File

@@ -11,6 +11,7 @@ describe('Tests for api', ()=>{
let modelBrew; let modelBrew;
let saveFunc; let saveFunc;
let removeFunc; let removeFunc;
let markModifiedFunc;
let saved; let saved;
beforeEach(()=>{ beforeEach(()=>{
@@ -20,15 +21,18 @@ describe('Tests for api', ()=>{
return saved; return saved;
}); });
removeFunc = jest.fn(async function() {}); removeFunc = jest.fn(async function() {});
markModifiedFunc = jest.fn(()=>true);
modelBrew = (brew)=>({ modelBrew = (brew)=>({
...brew, ...brew,
save : saveFunc, save : saveFunc,
remove : removeFunc, remove : removeFunc,
toObject : function() { markModified : markModifiedFunc,
toObject : function() {
delete this.save; delete this.save;
delete this.toObject; delete this.toObject;
delete this.remove; delete this.remove;
delete this.markModified;
return this; return this;
} }
}); });
@@ -627,6 +631,7 @@ brew`);
await api.deleteBrew(req, res); await api.deleteBrew(req, res);
expect(api.getBrew).toHaveBeenCalled(); expect(api.getBrew).toHaveBeenCalled();
expect(markModifiedFunc).toHaveBeenCalled();
expect(model.findOne).toHaveBeenCalled(); expect(model.findOne).toHaveBeenCalled();
expect(removeFunc).not.toHaveBeenCalled(); expect(removeFunc).not.toHaveBeenCalled();
expect(saveFunc).toHaveBeenCalled(); expect(saveFunc).toHaveBeenCalled();
@@ -716,6 +721,7 @@ brew`);
await api.deleteBrew(req, res); await api.deleteBrew(req, res);
expect(api.getBrew).toHaveBeenCalled(); expect(api.getBrew).toHaveBeenCalled();
expect(markModifiedFunc).toHaveBeenCalled();
expect(model.findOne).toHaveBeenCalled(); expect(model.findOne).toHaveBeenCalled();
expect(removeFunc).not.toHaveBeenCalled(); expect(removeFunc).not.toHaveBeenCalled();
expect(api.deleteGoogleBrew).toHaveBeenCalled(); expect(api.deleteGoogleBrew).toHaveBeenCalled();