diff --git a/webapp/components/generic/SearchHeading/SearchHeading.vue b/webapp/components/generic/SearchHeading/SearchHeading.vue
index fdd9357ab..6431ae66d 100644
--- a/webapp/components/generic/SearchHeading/SearchHeading.vue
+++ b/webapp/components/generic/SearchHeading/SearchHeading.vue
@@ -1,9 +1,7 @@
-
-
- {{ $t(`search.heading.${resourceType}`) }}
-
-
+
+ {{ $t(`search.heading.${resourceType}`) }}
+
diff --git a/webapp/components/generic/SearchableInput/SearchableInput.spec.js b/webapp/components/generic/SearchableInput/SearchableInput.spec.js
index db314630f..994e617d6 100644
--- a/webapp/components/generic/SearchableInput/SearchableInput.spec.js
+++ b/webapp/components/generic/SearchableInput/SearchableInput.spec.js
@@ -32,81 +32,79 @@ describe('SearchableInput.vue', () => {
}
describe('mount', () => {
- describe('testing custom functions', () => {
- let select
+ let select, dropdown
+ beforeEach(() => {
+ select = wrapper.find('.ds-select')
+ select.trigger('focus')
+ select.element.value = 'abcd'
+ })
+
+ it('opens the dropdown when focused', () => {
+ expect(wrapper.find('.ds-select-dropdown').isVisible()).toBe(true)
+ })
+
+ it('closes the dropdown when blurred', () => {
+ select.trigger('blur')
+ expect(wrapper.find('.ds-select-is-open').exists()).toBe(false)
+ })
+
+ it('closes the dropdown when cleared with esc key', () => {
+ select.trigger('input')
+ select.trigger('keyup.esc')
+ expect(wrapper.find('.ds-select-is-open').exists()).toBe(false)
+ })
+
+ it('changes the unprocessedSearchInput as the value changes', () => {
+ select.trigger('input')
+ expect(select.element.value).toBe('abcd')
+ })
+
+ it('searches for the term when enter is pressed', async () => {
+ select.element.value = 'ab'
+ select.trigger('input')
+ select.trigger('keyup.enter')
+ await expect(wrapper.emitted().query[0]).toEqual(['ab'])
+ })
+
+ it('calls onDelete when the delete key is pressed', () => {
+ const spy = jest.spyOn(wrapper.vm, 'onDelete')
+ select.trigger('input')
+ select.trigger('keyup.delete')
+ expect(spy).toHaveBeenCalledTimes(1)
+ })
+
+ describe('navigating to resource', () => {
beforeEach(() => {
+ propsData = { options: searchResults }
+ wrapper = Wrapper()
select = wrapper.find('.ds-select')
select.trigger('focus')
- select.element.value = 'abcd'
})
- it('opens the select dropdown when focused on', () => {
- expect(wrapper.find('.is-open').exists()).toBe(true)
- })
-
- it('opens the select dropdown and blurs after focused on', () => {
- select.trigger('blur')
- expect(wrapper.find('.is-open').exists()).toBe(false)
- })
-
- it('is clearable', () => {
+ it('pushes to post page', async () => {
+ select.element.value = 'Post'
select.trigger('input')
- select.trigger('keyup.esc')
- expect(wrapper.find('.is-open').exists()).toBe(false)
- })
-
- it('changes the unprocessedSearchInput as the value changes', () => {
- select.trigger('input')
- expect(select.element.value).toBe('abcd')
- })
-
- it('searches for the term when enter is pressed', async () => {
- select.element.value = 'ab'
- select.trigger('input')
- select.trigger('keyup.enter')
- await expect(wrapper.emitted().query[0]).toEqual(['ab'])
- })
-
- it('calls onDelete when the delete key is pressed', () => {
- const spy = jest.spyOn(wrapper.vm, 'onDelete')
- select.trigger('input')
- select.trigger('keyup.delete')
- expect(spy).toHaveBeenCalledTimes(1)
- })
-
- describe('navigating to resource', () => {
- beforeEach(() => {
- propsData = { options: searchResults }
- wrapper = Wrapper()
- select = wrapper.find('.ds-select')
- select.trigger('focus')
- })
-
- it('pushes to post page', async () => {
- select.element.value = 'Post'
- select.trigger('input')
- const post = wrapper.find('.search-post')
- post.trigger('click')
- await Vue.nextTick().then(() => {
- expect(mocks.$router.push).toHaveBeenCalledWith({
- name: 'post-id-slug',
- params: { id: 'post-by-jenny', slug: 'user-post-by-jenny' },
- })
+ const post = wrapper.find('.search-post')
+ post.trigger('click')
+ await Vue.nextTick().then(() => {
+ expect(mocks.$router.push).toHaveBeenCalledWith({
+ name: 'post-id-slug',
+ params: { id: 'post-by-jenny', slug: 'user-post-by-jenny' },
})
})
+ })
- it("pushes to user's profile", async () => {
- select.element.value = 'Bob'
- select.trigger('input')
- const users = wrapper.findAll('.userinfo')
- const bob = users.filter(item => item.text() === '@bob-der-baumeister')
- bob.trigger('click')
- await Vue.nextTick().then(() => {
- expect(mocks.$router.push).toHaveBeenCalledWith({
- name: 'profile-id-slug',
- params: { id: 'u2', slug: 'bob-der-baumeister' },
- })
+ it("pushes to user's profile", async () => {
+ select.element.value = 'Bob'
+ select.trigger('input')
+ const users = wrapper.findAll('.userinfo')
+ const bob = users.filter(item => item.text() === '@bob-der-baumeister')
+ bob.trigger('click')
+ await Vue.nextTick().then(() => {
+ expect(mocks.$router.push).toHaveBeenCalledWith({
+ name: 'profile-id-slug',
+ params: { id: 'u2', slug: 'bob-der-baumeister' },
})
})
})
diff --git a/webapp/components/generic/SearchableInput/SearchableInput.vue b/webapp/components/generic/SearchableInput/SearchableInput.vue
index cc9269ecf..c92d22cbe 100644
--- a/webapp/components/generic/SearchableInput/SearchableInput.vue
+++ b/webapp/components/generic/SearchableInput/SearchableInput.vue
@@ -3,58 +3,48 @@
class="searchable-input"
aria-label="search"
role="search"
- :class="{
- 'is-active': isActive,
- 'is-open': isOpen,
- }"
>
-
-
-
-
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+