diff options
author | Devlin Junker <devlin.junker@gmail.com> | 2023-08-16 15:28:17 -0700 |
---|---|---|
committer | Benjamin Brahmer <info@b-brahmer.de> | 2023-08-22 08:34:39 +0200 |
commit | efb1ac236e0e5f2038886fccf4d01337b486732a (patch) | |
tree | d33293f99d4a8c89b229a3d8e14e5c441f41c618 /tests/javascript/unit/components/Starred.spec.ts | |
parent | 0bfb6162c7a7d9b1c67fbcbab04d6b408bbec828 (diff) |
basic unit tests
Signed-off-by: Devlin Junker <devlin.junker@gmail.com>
Diffstat (limited to 'tests/javascript/unit/components/Starred.spec.ts')
-rw-r--r-- | tests/javascript/unit/components/Starred.spec.ts | 75 |
1 files changed, 75 insertions, 0 deletions
diff --git a/tests/javascript/unit/components/Starred.spec.ts b/tests/javascript/unit/components/Starred.spec.ts new file mode 100644 index 000000000..212c69f6e --- /dev/null +++ b/tests/javascript/unit/components/Starred.spec.ts @@ -0,0 +1,75 @@ +import Vuex, { Store } from 'vuex' +import { shallowMount, createLocalVue, Wrapper } from '@vue/test-utils' + +import Starred from '../../../../src/components/Starred.vue' +import VirtualScroll from '../../../../src/components/VirtualScroll.vue' +import FeedItem from '../../../../src/components/FeedItem.vue' + +jest.mock('@nextcloud/axios') + +describe('Explore.vue', () => { + 'use strict' + const localVue = createLocalVue() + localVue.use(Vuex) + let wrapper: Wrapper<Starred> + + const mockItem = { + feedId: 1, + title: 'feed item', + pubDate: Date.now() / 1000, + } + + let store: Store<any> + beforeAll(() => { + store = new Vuex.Store({ + state: { + items: { + starredLoaded: false, + }, + }, + actions: { + }, + getters: { + starred: () => [mockItem], + }, + }) + wrapper = shallowMount(Starred, { + propsData: { + item: mockItem, + }, + localVue, + store, + }) + }) + + it('should initialize with mounted flag set', () => { + expect(wrapper.vm.$data.mounted).toBeTruthy() + }) + + it('should get starred items from state', () => { + expect((wrapper.findAllComponents(FeedItem).length)).toEqual(1) + }) + + it('should check starredLoaded and mounted to determine if the virtual scroll has reached end ', () => { + wrapper.vm.$store.state.items.starredLoaded = false + expect((wrapper.findComponent(VirtualScroll)).props().reachedEnd).toEqual(false) + + wrapper.vm.$store.state.items.starredLoaded = true + store.state.items.starredLoaded = true + + wrapper = shallowMount(Starred, { + propsData: { + item: mockItem, + }, + data: () => { + return { + mounted: true, + } + }, + localVue, + store, + }) + + expect((wrapper.findComponent(VirtualScroll)).props().reachedEnd).toEqual(true) + }) +}) |