-
Notifications
You must be signed in to change notification settings - Fork 2
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
15 changed files
with
597 additions
and
216 deletions.
There are no files selected for viewing
Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.
Oops, something went wrong.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
124 changes: 60 additions & 64 deletions
124
frontend/src/components/__tests__/HeaderDetailPage.spec.ts
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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( | ||
{ | ||
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() | ||
}) | ||
}) |
Oops, something went wrong.