summaryrefslogtreecommitdiffstats
path: root/tests/javascript/unit/services/share.service.spec.ts
diff options
context:
space:
mode:
Diffstat (limited to 'tests/javascript/unit/services/share.service.spec.ts')
-rw-r--r--tests/javascript/unit/services/share.service.spec.ts46
1 files changed, 46 insertions, 0 deletions
diff --git a/tests/javascript/unit/services/share.service.spec.ts b/tests/javascript/unit/services/share.service.spec.ts
new file mode 100644
index 000000000..678c0eebf
--- /dev/null
+++ b/tests/javascript/unit/services/share.service.spec.ts
@@ -0,0 +1,46 @@
+import { ShareService } from './../../../../src/dataservices/share.service'
+import axios from '@nextcloud/axios'
+
+jest.mock('@nextcloud/axios')
+
+describe('share.service.ts', () => {
+ 'use strict'
+
+ beforeEach(() => {
+ (axios.get as any).mockReset();
+ (axios.post as any).mockReset()
+ })
+
+ describe('fetchUsers', () => {
+ it('should call GET to retrieve users', async () => {
+ (axios as any).get.mockResolvedValue({ data: { feeds: [] } })
+
+ await ShareService.fetchUsers('abc')
+
+ expect(axios.get).toBeCalled()
+ const args = (axios.get as any).mock.calls[0]
+
+ expect(args[0]).toContain('search=abc')
+ })
+ })
+
+ describe('share', () => {
+ it('should call POST for each user passed', async () => {
+ await ShareService.share(123, ['share-user'])
+
+ expect(axios.post).toBeCalledTimes(1)
+ let args = (axios.post as any).mock.calls[0]
+
+ expect(args[0]).toContain('123/share/share-user')
+
+ await ShareService.share(345, ['share-user', 'share2'])
+
+ expect(axios.post).toBeCalledTimes(3)
+
+ args = (axios.post as any).mock.calls[1]
+ expect(args[0]).toContain('345/share/share-user')
+ args = (axios.post as any).mock.calls[2]
+ expect(args[0]).toContain('345/share/share2')
+ })
+ })
+})