Skip to content

Commit

Permalink
testing
Browse files Browse the repository at this point in the history
  • Loading branch information
gromdimon committed Aug 28, 2023
1 parent db627cf commit 9f15977
Show file tree
Hide file tree
Showing 15 changed files with 597 additions and 216 deletions.
67 changes: 67 additions & 0 deletions frontend/package-lock.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

1 change: 1 addition & 0 deletions frontend/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -43,6 +43,7 @@
"typescript": "~5.2.2",
"vite": "^4.3.9",
"vitest": "^0.32.4",
"vitest-fetch-mock": "^0.2.2",
"vue-cli-plugin-vuetify": "~2.5.8",
"vue-tsc": "^1.6.5"
}
Expand Down
22 changes: 11 additions & 11 deletions frontend/src/components/HeaderDetailPage.vue
Original file line number Diff line number Diff line change
@@ -1,14 +1,14 @@
<script setup lang="ts">
// import { useRouter } from 'vue-router'
// import { useGeneInfoStore } from '@/stores/geneInfo'
import { useRouter } from 'vue-router'
import { useGeneInfoStore } from '@/stores/geneInfo'
// const router = useRouter()
const router = useRouter()
// const geneInfoStore = useGeneInfoStore()
const geneInfoStore = useGeneInfoStore()
// if (geneInfoStore.geneInfo === null) {
// router.push({ name: 'home' })
// }
if (geneInfoStore.geneInfo === null) {
router.push({ name: 'home' })
}
</script>

<template>
Expand All @@ -20,13 +20,13 @@
</v-toolbar-title>
<v-spacer></v-spacer>
<v-toolbar-items class="topbar-links">
<v-btn to="/about"> About </v-btn>
<v-btn to="/contact"> Contact </v-btn>
<v-btn id="about" to="/about"> About </v-btn>
<v-btn id="contact" to="/contact"> Contact </v-btn>
</v-toolbar-items>
</v-app-bar>
</template>

<!-- <style scoped>
<style scoped>
.top-bar {
background-color: white;
border-bottom: 2px solid rgb(111, 100, 210);
Expand All @@ -42,4 +42,4 @@
margin-right: 10px;
margin-top: 10px;
}
</style> -->
</style>
6 changes: 5 additions & 1 deletion frontend/src/components/SearchBar.vue
Original file line number Diff line number Diff line change
Expand Up @@ -40,7 +40,11 @@ const props = withDefaults(defineProps<Props>(), {
></v-select>
</v-col>
<v-col cols="12" md="3">
<v-btn @click="$emit('clickSearch', props.searchTerm, props.genomeRelease)" color="primary">
<v-btn
id="search"
@click="$emit('clickSearch', props.searchTerm, props.genomeRelease)"
color="primary"
>
search
</v-btn>
</v-col>
Expand Down
40 changes: 10 additions & 30 deletions frontend/src/components/__tests__/HeaderDefault.spec.ts
Original file line number Diff line number Diff line change
@@ -1,48 +1,24 @@
import { describe, it, expect } from 'vitest'
import { describe, it, expect, vi } from 'vitest'
import { mount } from '@vue/test-utils'
import HeaderDefault from '../HeaderDefault.vue'

import { createVuetify } from 'vuetify'
import * as components from 'vuetify/components'
import * as directives from 'vuetify/directives'
import { createRouter, createWebHistory } from 'vue-router'
import { routes } from '@/router'

const vuetify = createVuetify({
components,
directives
})

import { createRouter, createWebHistory } from 'vue-router'
import HomeView from '@/views/HomeView.vue'
import AboutView from '@/views/AboutView.vue'
import ContactView from '@/views/ContactView.vue'
import GeneDetailsView from '@/views/GeneDetailView.vue'

const router = createRouter({
history: createWebHistory(import.meta.env.BASE_URL),
routes: [
{
path: '/',
name: 'home',
component: HomeView
},
{
path: '/about',
name: 'about',
component: AboutView
},
{
path: '/contact',
name: 'contact',
component: ContactView
},
{
path: '/gene/:searchTerm',
name: 'gene',
component: GeneDetailsView,
props: (route) => ({ searchTerm: route.params.searchTerm })
}
]
routes: routes
})
// Mock router push
router.push = vi.fn()

global.ResizeObserver = require('resize-observer-polyfill')

Expand All @@ -61,8 +37,11 @@ describe('HeaderDefault.vue', () => {
}
}
)

const logo = wrapper.find('#logo')
const title = wrapper.find('a[href="/"]')
expect(logo.exists()).toBe(true)
expect(title.text()).toBe('Explanation and Evaluation of Variants')
})

it('renders the navigation links', () => {
Expand All @@ -79,6 +58,7 @@ describe('HeaderDefault.vue', () => {
}
}
)

const aboutLink = wrapper.find('#about')
const contactLink = wrapper.find('#contact')
expect(aboutLink.exists()).toBe(true)
Expand Down
124 changes: 60 additions & 64 deletions frontend/src/components/__tests__/HeaderDetailPage.spec.ts
Original file line number Diff line number Diff line change
@@ -1,94 +1,90 @@
import { describe, expect, it, vi } from 'vitest'
import { useRouter } from 'vue-router'
import { mount } from '@vue/test-utils'
import { createRouter, createWebHistory } from 'vue-router'
import { routes } from '@/router'
import { createTestingPinia } from '@pinia/testing'
import { mount, RouterLinkStub } from '@vue/test-utils'
import { useGeneInfoStore } from '@/stores/geneInfo'
import { createVuetify } from 'vuetify'
import * as components from 'vuetify/components'
import * as directives from 'vuetify/directives'
import HeaderDetailPage from '../HeaderDetailPage.vue'
import { StoreState } from '@/stores/geneInfo'

// const vuetify = createVuetify({
// components,
// directives,
// })
const vuetify = createVuetify({
components,
directives
})

// vi.mock('vue-router', () => ({
// useRouter: () => ({
// push: vi.fn()
// })
// }))
const router = createRouter({
history: createWebHistory(import.meta.env.BASE_URL),
routes: routes
})
// Mock router push
router.push = vi.fn()

// const makeWrapper = (geneData = {}) => {
// return mount(HeaderDetailPage, {
// // shallow: true,
// global: {
// plugins: [
// vuetify,
// // createTestingPinia({
// // initialState: { data: geneData },
// // createSpy: vi.fn()
// // })
// ]
// }
// })
// }
global.ResizeObserver = require('resize-observer-polyfill')

describe('HeaderDetailPage', async () => {
const vuetify = createVuetify({
components,
directives
})
it('renders the gene symbol and nav links', () => {
const geneData = {
storeState: 'active',
geneSymbol: 'BRCA1',
geneInfo: {
symbol: 'BRCA1',
name: 'Test Gene',
hgncId: '12345',
ensemblId: 'ENSG00000000000001',
entrezId: '12345'
}
}

// vi.mock('vue-router', () => ({
// useRouter: () => ({
// push: vi.fn()
// })
// }))
const wrapper = mount(
{
template: '<v-app><HeaderDetailPage /></v-app>'
},
{
global: {
plugins: [vuetify, router, createTestingPinia({ createSpy: vi.fn() })],
components: {
HeaderDetailPage
}
}
}
)

// it('renders the gene symbol and nav links', () => {
// const geneData = {
// geneSymbol: 'BRCA1',
// geneInfo: {
// symbol: 'BRCA1',
// name: 'Test Gene',
// hgncId: '12345',
// ensemblId: 'ENSG00000000000001',
// entrezId: '12345'
// }
// }
const store = useGeneInfoStore()
store.storeState = StoreState.Active
store.geneSymbol = geneData.geneSymbol
store.geneInfo = JSON.parse(JSON.stringify(geneData.geneInfo))

// const wrapper = makeWrapper(geneData)
// const store = useGeneInfoStore()
// const logo = wrapper.find('#logo')
// const aboutLink = wrapper.find('v-btn[to="/about"]')
// const contactLink = wrapper.find('v-btn[to="/contact"]')
// expect(logo.exists()).toBe(true)
// expect(aboutLink.exists()).toBe(true)
// expect(contactLink.exists()).toBe(true)
// })
const logo = wrapper.find('#logo')
const aboutLink = wrapper.find('#about')
const contactLink = wrapper.find('#contact')
expect(logo.exists()).toBe(true)
expect(aboutLink.exists()).toBe(true)
expect(contactLink.exists()).toBe(true)
})

it('redirects if gene data is null', async () => {
// const geneData = {geneSymbol: '', geneInfo: null}
// const wrapper = makeWrapper(geneData)
const store = useGeneInfoStore()
store.storeState = StoreState.Initial
store.geneSymbol = null
store.geneInfo = null

const wrapper = mount(

Check warning on line 74 in frontend/src/components/__tests__/HeaderDetailPage.spec.ts

View workflow job for this annotation

GitHub Actions / Frontend-Lint

'wrapper' is assigned a value but never used
{
template: '<v-layout><header-detail-page></header-detail-page></v-layout>'
template: '<v-app><HeaderDetailPage /></v-app>'
},
{
global: {
plugins: [vuetify],
plugins: [vuetify, router, createTestingPinia({ createSpy: vi.fn() })],
components: {
HeaderDetailPage
},
stubs: {
RouterLink: RouterLinkStub
}
}
}
)
console.log(wrapper.html())
// const router = useRouter()
// expect(router.push).toHaveBeenCalled()

expect(router.push).toHaveBeenCalled()
})
})
Loading

0 comments on commit 9f15977

Please sign in to comment.