diff --git a/server/books/tests/queries.py b/server/books/tests/queries.py index 69df53cc..95fc7123 100644 --- a/server/books/tests/queries.py +++ b/server/books/tests/queries.py @@ -113,17 +113,6 @@ query SnapshotDetail($id: ID!) { } """ -SHARE_SNAPSHOT_MUTATION = """ -mutation ShareSnapshot($input: ShareSnapshotInput!) { - shareSnapshot(input: $input) { - success - snapshot { - shared - } - } -} -""" - MODULE_SNAPSHOTS_QUERY = """ query SnapshotQuery($slug: String!) { module(slug: $slug) { @@ -136,3 +125,30 @@ query SnapshotQuery($slug: String!) { } } """ + +SHARE_SNAPSHOT_MUTATION = """ +mutation ShareSnapshot($input: ShareSnapshotInput!) { + shareSnapshot(input: $input) { + success + snapshot { + shared + } + } +} +""" + +UPDATE_SNAPSHOT_MUTATION = """ +mutation UpdateSnapshot($input: UpdateSnapshotInput!) { + updateSnapshot(input: $input) { + snapshot { + ...on SnapshotNode { + title + id + } + ...on NotOwner { + reason + } + } + } +} +""" diff --git a/server/books/tests/test_snapshots.py b/server/books/tests/test_snapshots.py index 004f3c80..f60200c6 100644 --- a/server/books/tests/test_snapshots.py +++ b/server/books/tests/test_snapshots.py @@ -7,7 +7,7 @@ from api.utils import get_object from books.factories import ModuleFactory, ChapterFactory, ContentBlockFactory from books.models import Snapshot, ChapterSnapshot from books.tests.queries import MODULE_QUERY, SNAPSHOT_MODULE_QUERY, CREATE_SNAPSHOT_MUTATION, APPLY_SNAPSHOT_MUTATION, \ - MODULE_SNAPSHOTS_QUERY, SHARE_SNAPSHOT_MUTATION + MODULE_SNAPSHOTS_QUERY, SHARE_SNAPSHOT_MUTATION, UPDATE_SNAPSHOT_MUTATION from core.tests.base_test import SkillboxTestCase from objectives.factories import ObjectiveGroupFactory, ObjectiveFactory from users.factories import SchoolClassFactory @@ -424,3 +424,33 @@ class SnapshotTestCase(SkillboxTestCase): }) self.assertIsNone(result.errors) self.assertEqual(len(result.data.get('module').get('snapshots')), 1) + + + def _setup_title_change(self): + self.assertIsNone(self.snapshot.title) + new_title = 'New Snapshot Title' + result = self.get_client().execute(UPDATE_SNAPSHOT_MUTATION, variables={ + 'input': { + 'id': to_global_id('Snapshot', self.snapshot.id), + 'title': new_title + } + }) + return result + + def test_update_snapshot_title(self): + result = self._setup_title_change() + self.assertIsNone(result.errors) + self.assertEqual(result.data.get('updateSnapshot').get('snapshot').get('title'), 'New Snapshot Title') + + def test_update_snapshot_not_owner_fails(self): + self.snapshot.creator = self.teacher2 + self.snapshot.save() + result = self._setup_title_change() + self.assertIsNone(result.errors) + self.assertEqual(result.data.get('updateSnapshot').get('snapshot').get('reason'), 'Not the owner') + + def test_delete_snapshot(self): + self.assertTrue(False) + + def test_delete_snapshot_not_owner_fails(self): + self.assertTrue(False)