Add cypress tests for learningPath view
This commit is contained in:
parent
5875f13143
commit
3189e1cb7f
|
|
@ -1,7 +1,6 @@
|
||||||
<script>
|
<script>
|
||||||
import * as d3 from 'd3';
|
import * as d3 from 'd3';
|
||||||
import {useLearningPathStore} from '../../stores/learningPath';
|
import { useLearningPathStore } from '../../stores/learningPath';
|
||||||
|
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
props: {
|
props: {
|
||||||
|
|
@ -129,6 +128,13 @@ export default {
|
||||||
.enter()
|
.enter()
|
||||||
.append('g')
|
.append('g')
|
||||||
.attr('class', 'circle')
|
.attr('class', 'circle')
|
||||||
|
.attr('data-cy', (d) => {
|
||||||
|
if (this.vertical) {
|
||||||
|
return `circle-${d.slug}-vertical`;
|
||||||
|
} else {
|
||||||
|
return `circle-${d.slug}`
|
||||||
|
}
|
||||||
|
})
|
||||||
.on('mouseover', function (d, i) {
|
.on('mouseover', function (d, i) {
|
||||||
d3.select(this)
|
d3.select(this)
|
||||||
.selectAll('.learningSegmentArc')
|
.selectAll('.learningSegmentArc')
|
||||||
|
|
|
||||||
|
|
@ -33,6 +33,7 @@ const closeModal = () => {
|
||||||
<Transition mode="in-out">
|
<Transition mode="in-out">
|
||||||
<div
|
<div
|
||||||
v-if="show"
|
v-if="show"
|
||||||
|
data-cy="full-screen-modal"
|
||||||
class="px-4 py-16 lg:px-16 lg:py-24 fixed top-0 overflow-y-scroll bg-white h-full w-full">
|
class="px-4 py-16 lg:px-16 lg:py-24 fixed top-0 overflow-y-scroll bg-white h-full w-full">
|
||||||
<button
|
<button
|
||||||
type="button"
|
type="button"
|
||||||
|
|
|
||||||
|
|
@ -52,7 +52,7 @@ onMounted(async () => {
|
||||||
<span class="inline">zurück zum Lernpfad</span>
|
<span class="inline">zurück zum Lernpfad</span>
|
||||||
</router-link>
|
</router-link>
|
||||||
|
|
||||||
<h1 class="text-blue-dark text-7xl">
|
<h1 class="text-blue-dark text-7xl" data-cy="circle-title">
|
||||||
{{ circleStore.circle?.title }}
|
{{ circleStore.circle?.title }}
|
||||||
</h1>
|
</h1>
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -28,7 +28,7 @@ onMounted(async () => {
|
||||||
|
|
||||||
<template>
|
<template>
|
||||||
<div class="bg-gray-200" v-if="learningPathStore.learningPath">
|
<div class="bg-gray-200" v-if="learningPathStore.learningPath">
|
||||||
<Teleport to="body">
|
<Teleport to="body">
|
||||||
<LearningPathViewVertical
|
<LearningPathViewVertical
|
||||||
:show="learningPathStore.page === 'OVERVIEW'"
|
:show="learningPathStore.page === 'OVERVIEW'"
|
||||||
@closemodal="learningPathStore.page = 'INDEX'"
|
@closemodal="learningPathStore.page = 'INDEX'"
|
||||||
|
|
@ -40,12 +40,17 @@ onMounted(async () => {
|
||||||
<div class="flex flex-col h-max">
|
<div class="flex flex-col h-max">
|
||||||
<div class="bg-white py-8 flex flex-col">
|
<div class="bg-white py-8 flex flex-col">
|
||||||
<div class="flex justify-end p-3">
|
<div class="flex justify-end p-3">
|
||||||
<button class="flex items-center" @click="learningPathStore.page = 'OVERVIEW'">
|
<button
|
||||||
|
class="flex items-center"
|
||||||
|
@click="learningPathStore.page = 'OVERVIEW'"
|
||||||
|
data-cy="show-list-view"
|
||||||
|
>
|
||||||
<it-icon-list/>
|
<it-icon-list/>
|
||||||
Listen Ansicht anzeigen
|
Listen Ansicht anzeigen
|
||||||
</button>
|
</button>
|
||||||
</div>
|
</div>
|
||||||
<LearningPathDiagram class="max-w-[1680px] w-full" identifier="mainVisualization" v-bind:vertical="false"></LearningPathDiagram>
|
<LearningPathDiagram class="max-w-[1680px] w-full" identifier="mainVisualization"
|
||||||
|
v-bind:vertical="false"></LearningPathDiagram>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<h1 data-cy="learning-path-title" class="m-12">{{ learningPathStore.learningPath.title }}</h1>
|
<h1 data-cy="learning-path-title" class="m-12">{{ learningPathStore.learningPath.title }}</h1>
|
||||||
|
|
|
||||||
|
|
@ -1,14 +1,11 @@
|
||||||
<script setup lang="ts">
|
<script setup lang="ts">
|
||||||
|
|
||||||
import * as log from 'loglevel';
|
import * as log from 'loglevel';
|
||||||
|
|
||||||
import {onMounted} from 'vue'
|
|
||||||
import {useLearningPathStore} from '@/stores/learningPath';
|
import {useLearningPathStore} from '@/stores/learningPath';
|
||||||
import {useUserStore} from '@/stores/user';
|
import {useUserStore} from '@/stores/user';
|
||||||
|
|
||||||
import LearningPathDiagram from '@/components/circle/LearningPathDiagram.vue';
|
import LearningPathDiagram from '@/components/circle/LearningPathDiagram.vue';
|
||||||
import ItFullScreenModal from '@/components/ui/ItFullScreenModal.vue';
|
import ItFullScreenModal from '@/components/ui/ItFullScreenModal.vue';
|
||||||
import {Circle} from "@/services/circle";
|
|
||||||
|
|
||||||
|
|
||||||
log.debug('LearningPathView created');
|
log.debug('LearningPathView created');
|
||||||
|
|
|
||||||
|
|
@ -3,6 +3,8 @@ const { defineConfig } = require('cypress')
|
||||||
module.exports = defineConfig({
|
module.exports = defineConfig({
|
||||||
watchForFileChanges: false,
|
watchForFileChanges: false,
|
||||||
video: false,
|
video: false,
|
||||||
|
viewportWidth: 1280,
|
||||||
|
viewportHeight: 720,
|
||||||
retries: {
|
retries: {
|
||||||
runMode: 1,
|
runMode: 1,
|
||||||
openMode: 0,
|
openMode: 0,
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,40 @@
|
||||||
|
import { login } from "./helpers";
|
||||||
|
|
||||||
|
describe("learningPath", () => {
|
||||||
|
beforeEach(() => {
|
||||||
|
cy.manageCommand("cypress_reset");
|
||||||
|
});
|
||||||
|
|
||||||
|
it("can open learningPath page", () => {
|
||||||
|
login("admin", "test");
|
||||||
|
cy.visit("/learningpath/versicherungsvermittlerin");
|
||||||
|
|
||||||
|
cy.get('[data-cy="learning-path-title"]').should(
|
||||||
|
"contain",
|
||||||
|
"Versicherungsvermittler/in"
|
||||||
|
);
|
||||||
|
});
|
||||||
|
|
||||||
|
it("click on circle on learningPath page will open circle", () => {
|
||||||
|
login("admin", "test");
|
||||||
|
cy.visit("/learningpath/versicherungsvermittlerin");
|
||||||
|
|
||||||
|
cy.get('[data-cy="circle-analyse"]').click({ force: true });
|
||||||
|
|
||||||
|
cy.url().should("include", "/circle/analyse");
|
||||||
|
cy.get('[data-cy="circle-title"]').should("contain", "Analyse");
|
||||||
|
});
|
||||||
|
|
||||||
|
it("open listView and click on cirle will open circle", () => {
|
||||||
|
login("admin", "test");
|
||||||
|
cy.visit("/learningpath/versicherungsvermittlerin");
|
||||||
|
|
||||||
|
cy.get('[data-cy="show-list-view"]').click();
|
||||||
|
cy.get('[data-cy="full-screen-modal"]').should("be.visible");
|
||||||
|
|
||||||
|
cy.get('[data-cy="circle-analyse-vertical"]').click({ force: true });
|
||||||
|
|
||||||
|
cy.url().should("include", "/circle/analyse");
|
||||||
|
cy.get('[data-cy="circle-title"]').should("contain", "Analyse");
|
||||||
|
});
|
||||||
|
});
|
||||||
Loading…
Reference in New Issue