Merge branch 'feat/logout' into 'main'

Feat/logout : fix tests

See merge request geovisio/website!20
This commit is contained in:
Jean Andreani
2023-03-30 13:18:57 +00:00
4 changed files with 242 additions and 93 deletions

View File

@@ -1,5 +1,36 @@
geovisio-publish:
stage: deploy
stages:
- 'Install'
- 'Test'
- 'Deploy'
before_script:
## chmod is unfortunately currently mandatory : https://github.com/nodejs/docker-node/issues/661
- npm install -g yarn@1.22.19 && chmod +x /usr/local/lib/node_modules/yarn/bin/yarn.js
install:
stage: Install
image: node:18.13.0
script:
- yarn install
artifacts:
name: 'artifacts'
untracked: true
expire_in: 30 mins
paths:
- .yarn/
- node_modules/
test:
stage: Test
image: node:18.13.0
script:
- yarn test:unit
dependencies:
- install
coverage: /All files[^|]*\|[^|]*\s+([\d\.]+)/
deploy:
stage: Deploy
image: node:18.13.0
cache:
paths:

View File

@@ -1,6 +1,8 @@
import { it, test, describe, expect } from 'vitest'
import { vi, it, test, describe, expect } from 'vitest'
import { mount } from '@vue/test-utils'
import Header from '../Header.vue'
vi.mock('vue-router')
describe('Template Snapshot test', () => {
describe('When the user is not logged', () => {
it('should render the component with his childs', () => {
@@ -20,7 +22,11 @@ describe('Template Snapshot test', () => {
})
})
describe('When the user is logged', () => {
it('should render the component with his childs', () => {
it('should render the component with his childs', async () => {
const VueRouter = await import('vue-router')
VueRouter.useRoute.mockReturnValueOnce({
path: 'my-path'
})
Object.defineProperty(document, 'cookie', {
value: 'user_id=abc123'
})
@@ -34,6 +40,11 @@ describe('Template Snapshot test', () => {
template: '<a />'
}
}
},
computed: {
logoutUrl() {
return 'test'
}
}
})
expect(wrapper.element).toMatchSnapshot()
@@ -44,6 +55,10 @@ describe('Template Snapshot test', () => {
describe('Methods', () => {
describe('toggleMenu', () => {
test('should change menuIsClosed value', async () => {
const VueRouter = await import('vue-router')
VueRouter.useRoute.mockReturnValueOnce({
path: 'my-path'
})
const wrapper = mount(Header, {
global: {
mocks: {

View File

@@ -5,6 +5,24 @@ exports[`Template Snapshot test > When the user is logged > should render the co
class="header"
data-v-a81738bd=""
>
<div
class="wrapper-beta-mobile"
data-v-a81738bd=""
>
<p
class="instance-beta"
data-v-0e5edcf4=""
data-v-a81738bd=""
>
general.header.title
<span
class="beta"
data-v-0e5edcf4=""
>
general.beta_version
</span>
</p>
</div>
<nav
class="nav"
data-v-a81738bd=""
@@ -20,66 +38,112 @@ exports[`Template Snapshot test > When the user is logged > should render the co
target="_blank"
type="external"
/>
<p
<div
class="wrapper-beta-desktop"
data-v-a81738bd=""
>
general.header.title
<span
class="beta"
<p
class="instance-beta"
data-v-0e5edcf4=""
data-v-a81738bd=""
>
general.beta_version
</span>
</p>
general.header.title
<span
class="beta"
data-v-0e5edcf4=""
>
general.beta_version
</span>
</p>
</div>
</div>
<ul
class="nav-list"
<div
class="wrapper-entries"
data-v-a81738bd=""
>
<li
class="nav-list-item"
<ul
class="nav-list"
data-v-a81738bd=""
>
<a
<li
class="item-logout"
data-v-a81738bd=""
disabled="true"
path="/"
>
general.header.contribute_text
</a>
</li>
<li
class="nav-list-item"
data-v-a81738bd=""
>
<a
<a
data-v-a81738bd=""
path="undefinedauth/logout?next_url=my-path"
type="external"
>
general.header.logout_text
</a>
</li>
<li
class="nav-list-item"
data-v-a81738bd=""
disabled="true"
path="/"
>
general.header.help_text
</a>
</li>
<li
<a
data-v-a81738bd=""
disabled="true"
path="/"
>
general.header.contribute_text
</a>
</li>
<li
class="nav-list-item"
data-v-a81738bd=""
>
<a
data-v-a81738bd=""
disabled="true"
path="/"
>
general.header.help_text
</a>
</li>
</ul>
<div
class="wrapper-right-entries"
data-v-a81738bd=""
>
<a
<div
class="item-with-sub"
data-v-a81738bd=""
icon="bi bi-person-circle"
path="https://panoramax.ign.fr/oauth/realms/geovisio/account/#/personal-info"
type="external"
/>
</li>
</ul>
<button
class="menu-burger"
data-v-a81738bd=""
>
<i
class="bi bi-list"
data-v-a81738bd=""
/>
</button>
>
<a
data-v-a81738bd=""
icon="bi bi-person-circle"
path=""
type="external"
/>
<i
class="chevron bi bi-chevron-up"
data-v-a81738bd=""
/>
<div
class="sub-nav-block"
data-v-a81738bd=""
>
<a
data-v-a81738bd=""
path="undefinedauth/logout?next_url=my-path"
type="external"
>
general.header.logout_text
</a>
</div>
</div>
<button
class="menu-burger"
data-v-a81738bd=""
>
<i
class="bi bi-list"
data-v-a81738bd=""
/>
</button>
</div>
</div>
</nav>
</header>
`;
@@ -89,6 +153,24 @@ exports[`Template Snapshot test > When the user is not logged > should render th
class="header"
data-v-a81738bd=""
>
<div
class="wrapper-beta-mobile"
data-v-a81738bd=""
>
<p
class="instance-beta"
data-v-0e5edcf4=""
data-v-a81738bd=""
>
general.header.title
<span
class="beta"
data-v-0e5edcf4=""
>
general.beta_version
</span>
</p>
</div>
<nav
class="nav"
data-v-a81738bd=""
@@ -104,66 +186,87 @@ exports[`Template Snapshot test > When the user is not logged > should render th
target="_blank"
type="external"
/>
<p
<div
class="wrapper-beta-desktop"
data-v-a81738bd=""
>
general.header.title
<span
class="beta"
<p
class="instance-beta"
data-v-0e5edcf4=""
data-v-a81738bd=""
>
general.beta_version
</span>
</p>
general.header.title
<span
class="beta"
data-v-0e5edcf4=""
>
general.beta_version
</span>
</p>
</div>
</div>
<ul
class="nav-list"
<div
class="wrapper-entries"
data-v-a81738bd=""
>
<li
class="nav-list-item"
<ul
class="nav-list"
data-v-a81738bd=""
>
<a
<!--v-if-->
<li
class="nav-list-item"
data-v-a81738bd=""
disabled="true"
path="/"
>
general.header.contribute_text
</a>
</li>
<li
class="nav-list-item"
data-v-a81738bd=""
>
<a
<a
data-v-a81738bd=""
disabled="true"
path="/"
>
general.header.contribute_text
</a>
</li>
<li
class="nav-list-item"
data-v-a81738bd=""
disabled="true"
path="/"
>
general.header.help_text
</a>
</li>
<li
<a
data-v-a81738bd=""
disabled="true"
path="/"
>
general.header.help_text
</a>
</li>
</ul>
<div
class="wrapper-right-entries"
data-v-a81738bd=""
>
<a
<div
class="item-with-sub"
data-v-a81738bd=""
icon="bi bi-person-circle"
path="https://panoramax.ign.fr/api/auth/login"
type="external"
/>
</li>
</ul>
<button
class="menu-burger"
data-v-a81738bd=""
>
<i
class="bi bi-list"
data-v-a81738bd=""
/>
</button>
>
<a
data-v-a81738bd=""
icon="bi bi-person-circle"
path="undefinedauth/login"
type="external"
/>
<!--v-if-->
<!--v-if-->
</div>
<button
class="menu-burger"
data-v-a81738bd=""
>
<i
class="bi bi-list"
data-v-a81738bd=""
/>
</button>
</div>
</div>
</nav>
</header>
`;

View File

@@ -98,7 +98,7 @@ onMounted(async () => {
}
@media (max-width: 500px) {
.entry-page {
padding-top: 12rem;
padding-top: 11rem;
}
.entry-viewer {
min-height: -webkit-fill-available;