diff --git a/server/books/schema/mutations/snapshot.py b/server/books/schema/mutations/snapshot.py index 767db74a..c9164e61 100644 --- a/server/books/schema/mutations/snapshot.py +++ b/server/books/schema/mutations/snapshot.py @@ -1,5 +1,4 @@ import graphene -from django.db.models import Q from graphene import relay from api.types import FailureNode, SuccessNode @@ -93,7 +92,7 @@ class DeleteSnapshot(relay.ClientIDMutation): return cls(result=NotOwnerFailure) snapshot.delete() - return cls(result=DeleteSnapshotResult) + return cls(result=DeleteSnapshotSuccess) class ApplySnapshot(relay.ClientIDMutation): diff --git a/server/books/tests/queries.py b/server/books/tests/queries.py index ba3db692..ccfc63a3 100644 --- a/server/books/tests/queries.py +++ b/server/books/tests/queries.py @@ -154,13 +154,16 @@ mutation UpdateSnapshot($input: UpdateSnapshotInput!) { """ DELETE_SNAPSHOT_MUTATION = """ -mutation DeleteSnapshot($id: ID!) { - deleteSnapshot(id: $id) { +mutation DeleteSnapshot($input: DeleteSnapshotInput!) { + deleteSnapshot(input: $input) { result { - success + __typename ...on NotOwner { reason } + ...on Success { + message + } } } } diff --git a/server/books/tests/test_snapshots.py b/server/books/tests/test_snapshots.py index 41d3ac1d..aeda62c7 100644 --- a/server/books/tests/test_snapshots.py +++ b/server/books/tests/test_snapshots.py @@ -451,11 +451,21 @@ class SnapshotTestCase(SkillboxTestCase): def test_delete_snapshot(self): result = self.get_client().execute(DELETE_SNAPSHOT_MUTATION, variables={ 'input': { - 'id': self.snapshot + 'id': to_global_id('Snapshot', self.snapshot.id), } }) self.assertIsNone(result.errors) - self.assertEqual(result.data.get('deleteSnapshot').get('result').get('__typename'), 'SuccessNode') + self.assertEqual(result.data.get('deleteSnapshot').get('result').get('__typename'), 'Success') def test_delete_snapshot_not_owner_fails(self): - self.assertTrue(False) + self.snapshot.creator = self.teacher2 + self.snapshot.save() + result = self.get_client().execute(DELETE_SNAPSHOT_MUTATION, variables={ + 'input': { + 'id': to_global_id('Snapshot', self.snapshot.id), + } + }) + self.assertIsNone(result.errors) + result = result.data.get('deleteSnapshot').get('result') + self.assertEqual(result.get('__typename'), 'NotOwner') + self.assertEqual(result.get('reason'), 'Not the owner')