summaryrefslogtreecommitdiffstats
path: root/tests/javascript/unit/components/ShareItem.spec.ts
diff options
context:
space:
mode:
Diffstat (limited to 'tests/javascript/unit/components/ShareItem.spec.ts')
-rw-r--r--tests/javascript/unit/components/ShareItem.spec.ts75
1 files changed, 75 insertions, 0 deletions
diff --git a/tests/javascript/unit/components/ShareItem.spec.ts b/tests/javascript/unit/components/ShareItem.spec.ts
new file mode 100644
index 000000000..f61c9e82b
--- /dev/null
+++ b/tests/javascript/unit/components/ShareItem.spec.ts
@@ -0,0 +1,75 @@
+import { shallowMount, createLocalVue } from '@vue/test-utils'
+import ShareItem from '../../../../src/components/ShareItem.vue'
+import { ShareService } from '../../../../src/dataservices/share.service'
+
+describe('AddFeed.vue', () => {
+ 'use strict'
+
+ let wrapper: any
+ beforeEach(() => {
+ const localVue = createLocalVue()
+ wrapper = shallowMount(ShareItem, {
+ localVue,
+ propsData: {
+ itemId: 123,
+ },
+ })
+ })
+
+ describe('clickUser()', () => {
+ it('should add to selected if user not selected before', () => {
+ wrapper.vm.selected = []
+
+ wrapper.vm.clickUser({ displayName: 'display', shareName: 'share' })
+
+ expect(wrapper.vm.selected.length).toEqual(1)
+ })
+
+ it('should remove from selected if user is selected before', () => {
+ wrapper.vm.selected = [{ displayName: 'display', shareName: 'share' }]
+
+ wrapper.vm.clickUser({ displayName: 'display', shareName: 'share' })
+
+ expect(wrapper.vm.selected.length).toEqual(0)
+ })
+ })
+
+ describe('searchUsers()', () => {
+ it('should call ShareService to fetch users to add to user (display) list', async () => {
+ ShareService.fetchUsers = jest.fn().mockReturnValue({
+ data: {
+ ocs: {
+ data: {
+ users: [],
+ },
+ },
+ },
+ })
+ wrapper.vm.userName = 'search'
+
+ await wrapper.vm.searchUsers()
+
+ expect(ShareService.fetchUsers).toBeCalled()
+ })
+ })
+
+ describe('share()', () => {
+ it('should call ShareService to share article id with backend', async () => {
+ ShareService.share = jest.fn()
+ wrapper.vm.selected = [{ displayName: 'display', shareName: 'share' }]
+
+ await wrapper.vm.share()
+
+ expect(ShareService.share).toBeCalled()
+
+ wrapper.vm.selected = [{ displayName: 'display', shareName: 'share' }, { displayName: 'display2', shareName: 'share2' }]
+
+ await wrapper.vm.share()
+
+ let args = (ShareService.share as any).mock.calls[0]
+ expect(args[1]).toEqual(['share'])
+ args = (ShareService.share as any).mock.calls[1]
+ expect(args[1]).toEqual(['share', 'share2'])
+ })
+ })
+})