Skip to content
Snippets Groups Projects
Commit 9f905c94 authored by Cord Westhoff's avatar Cord Westhoff Committed by Albert Bruns
Browse files

add e2e test file for mark message as unread

parent 7a7974fe
Branches
Tags
2 merge requests!122OZG-7773-Nachrichten-auf-ungelesen-setzen-e2e,!120OZG-7773-Nachrichten-auf-ungelesen-setzen
#
# Copyright (C) 2024 Das Land Schleswig-Holstein vertreten durch den
# Copyright (C) 2023 Das Land Schleswig-Holstein vertreten durch den
# Ministerpräsidenten des Landes Schleswig-Holstein
# Staatskanzlei
# Abteilung Digitalisierung und zentrales IT-Management der Landesregierung
......@@ -22,22 +22,75 @@
# unter der Lizenz sind dem Lizenztext zu entnehmen.
#
volumes:
mongodb:
services:
mongodb:
image: mongo:7
ports:
- 27017:27017
volumes:
- mongodb:/data/db
- 27018:27017
environment:
- MONGODB_EXTRA_FLAGS=--profile=2
healthcheck:
test: [ 'CMD', 'mongosh', '--eval', 'db.settings.find()' ]
test: echo 'db.runCommand("ping").ok' | mongosh localhost:27017/test --quiet
interval: 10s
timeout: 5s
timeout: 10s
retries: 5
vorgang-manager:
image: docker.ozg-sh.de/vorgang-manager:${VORGANG_MANAGER_DOCKER_IMAGE:-snapshot-latest}
mem_limit: 2g
memswap_limit: 2g
platform: linux/amd64
environment:
- GRPC_CLIENT_USER-MANAGER_ADDRESS=static://user-manager:9000
- GRPC_CLIENT_USER-MANAGER_NEGOTIATION_TYPE=PLAINTEXT
- GRPC_CLIENT_ZUFI-MANAGER_ADDRESS=static://host.docker.internal:9190
- GRPC_CLIENT_ZUFI-MANAGER_NEGOTIATIONTYPE=PLAINTEXT
- logging_level_org_springframework_security=${LOGGING_LEVEL:-WARN}
- logging_level_io_grpc_netty_shaded_io_grpc=TRACE
- OZGCLOUD_ELASTICSEARCH_ADDRESS=elastic:9200
- OZGCLOUD_ELASTICSEARCH_INDEX=e2e-test-index
- OZGCLOUD_ELASTICSEARCH_PASSWORD=password
- OZGCLOUD_ELASTICSEARCH_USERNAME=elastic
- OZGCLOUD_ELASTICSEARCH_USESSL=false
- OZGCLOUD_PROCESSORS_0_ADDRESS=http://smocker:5080/externe-processor-success
- OZGCLOUD_PROCESSORS_0_NAME=ticketCheck
- OZGCLOUD_USER-MANAGER_URL=http://localhost:9092
- SPRING_DATA_MONGODB_HOST=mongodb
- SPRING_DATA_MONGODB_DATABASE=local
- SPRING_PROFILES_ACTIVE=${SPRING_PROFILE:-local,e2e}
- LOGGING_CONFIG=classpath:log4j2-local.xml
- GRPC_CLIENT_PLUTO_NEGOTIATIONTYPE=PLAINTEXT
- GRPC_CLIENT_VORGANG-MANAGER_NEGOTIATIONTYPE=PLAINTEXT
- GRPC_CLIENT_EMAIL_NEGOTIATIONTYPE=PLAINTEXT
- GRPC_CLIENT_NACHRICHTEN-MANAGER_NEGOTIATIONTYPE=PLAINTEXT
- GRPC_CLIENT_INFO-MANAGER_NEGOTIATIONTYPE=PLAINTEXT
- GRPC_CLIENT_COMMAND-MANAGER_NEGOTIATIONTYPE=PLAINTEXT
- GRPC_SERVER_SECURITY_ENABLED=false
# Bescheid-Wizard
- OZGCLOUD_FEATURE_BESCHEID_ENABLE-DUMMY-DOCUMENT-PROCESSOR=false
- OZGCLOUD_BESCHEID_SMART_DOCUMENTS_URL=http://smocker:8080/smartdocuments
- OZGCLOUD_BESCHEID_SMART_DOCUMENTS_BASIC_AUTH_USERNAME=MGM
- OZGCLOUD_BESCHEID_SMART_DOCUMENTS_BASIC_AUTH_PASSWORD=MGM
- OZGCLOUD_BESCHEID_SMART_DOCUMENTS_TEMPLATE_GROUP=OzgCloudTest
- OZGCLOUD_BESCHEID_SMART_DOCUMENTS_TEMPLATE=Halteverbot
- OZGCLOUD_VORGANG_MANAGER_SERVICE_ADDRESS=static://vorgang-manager:9090
- BPL_DEBUG_ENABLED=true
- BPL_DEBUG_PORT=5001
ports:
- 9091:9090
- 5001:5001
depends_on:
mongodb:
condition: service_healthy
elastic:
condition: service_healthy
smocker:
condition: service_healthy
user-manager:
condition: service_started
extra_hosts:
- "host.docker.internal:host-gateway"
alfa:
image: docker.ozg-sh.de/alfa:${ALFA_DOCKER_IMAGE:-snapshot-latest}
platform: linux/amd64
......@@ -72,24 +125,50 @@ services:
- OZGCLOUD_VORGANG_BESCHEID_0_FORM_ID=KFAS_STAGE_KI_10_Haltverbot_LANDESHACKATHON
- OZGCLOUD_FEATURE_COLLABORATION_ENABLED=true
- OZGCLOUD_BARRIEREFREIHEIT_URL=https://static.dev.sh.ozg-cloud.de/barrierefreiheit
# - LOGGING_LEVEL_ORG_SPRINGFRAMEWORK_SECURITY=TRACE
- OZGCLOUD_IMPRESSUM_URL=https://static.dev.sh.ozg-cloud.de/impressum
ports:
- 8081:8080
- 8080:8080
- 5000:5000
depends_on:
- vorgang-manager
- user-manager
extra_hosts:
- 'host.docker.internal:host-gateway'
- "host.docker.internal:host-gateway"
alfa-cors-proxy:
image: alfa-cors-proxy
build:
dockerfile: Dockerfile-nginx
elastic:
image: docker.elastic.co/elasticsearch/elasticsearch:8.3.2
ports:
- 8082:80
depends_on:
alfa:
condition: service_started
- 9200:9200
- 9300:9300
environment:
- discovery.type=single-node
- ELASTIC_PASSWORD=password
- ES_JAVA_OPTS=-Xms1g -Xmx1g
- MEM_LIMIT=1073741824
- xpack.security.enabled=false
- xpack.security.http.ssl.enabled=false
- logger.level=WARN
- bootstrap.memory_lock=true
deploy:
resources:
limits:
memory: 2g
volumes:
- esdata:/usr/share/elasticsearch/data
mem_limit: 2g
memswap_limit: 2g
ulimits:
memlock:
soft: -1
hard: -1
nofile:
soft: 65536
hard: 65536
healthcheck:
test: ['CMD-SHELL', "curl -s 'http://localhost:9200/_cat/health?h=status' | egrep -q '(green|yellow)'"]
interval: 10s
timeout: 10s
retries: 5
user-manager:
image: docker.ozg-sh.de/user-manager:${USER_MANAGER_DOCKER_IMAGE:-snapshot-latest}
......@@ -121,27 +200,23 @@ services:
mongodb:
condition: service_healthy
administration:
image: docker.ozg-sh.de/administration:${ADMINISTRATION_DOCKER_IMAGE:-snapshot-latest}
platform: linux/amd64
environment:
- GRPC_CLIENT_ZUFI-MANAGER_ADDRESS=static://host.docker.internal:9190
- GRPC_CLIENT_ZUFI-MANAGER_NEGOTIATIONTYPE=PLAINTEXT
- SPRING_PROFILES_ACTIVE=${SPRING_PROFILE:-local,remotekc}
- SPRING_DATA_MONGODB_URI=mongodb://mongodb:27017/config-db
- OZGCLOUD_OAUTH2_REALM=${KEYCLOAK_REALM:-by-e2e-tests-local-dev}
- ozgcloud_organisationeinheit_zufisearchuri=http://localhost:8082/api/organisationseinheits
- BPL_DEBUG_ENABLED=true
- BPL_DEBUG_PORT=5100
smocker:
image: thiht/smocker
ports:
- 8080:8080
- 5100:5100
- 7080:8080
- 7081:8081
healthcheck:
test: ['CMD-SHELL', 'wget --spider localhost:8081/version']
interval: 5s
timeout: 5s
retries: 5
smocker-init:
image: alpine/curl
volumes:
- ./src/fixtures/smocker:/mocks:ro
command: >
sh -c "curl -X POST http://smocker:8081/mocks -H 'Content-Type: application/x-yaml' --data-binary @/mocks/mocks.yaml"
depends_on:
mongodb:
smocker:
condition: service_healthy
alfa:
condition: service_started
user-manager:
condition: service_started
extra_hosts:
- 'host.docker.internal:host-gateway'
......@@ -37,6 +37,8 @@ services:
vorgang-manager:
image: docker.ozg-sh.de/vorgang-manager:${VORGANG_MANAGER_DOCKER_IMAGE:-snapshot-latest}
mem_limit: 2g
memswap_limit: 2g
platform: linux/amd64
environment:
- GRPC_CLIENT_USER-MANAGER_ADDRESS=static://user-manager:9000
......@@ -134,7 +136,7 @@ services:
- "host.docker.internal:host-gateway"
elastic:
image: docker.elastic.co/elasticsearch/elasticsearch:8.3.2
image: docker.elastic.co/elasticsearch/elasticsearch:8.16.5
ports:
- 9200:9200
- 9300:9300
......@@ -146,6 +148,14 @@ services:
- xpack.security.enabled=false
- xpack.security.http.ssl.enabled=false
- logger.level=WARN
- bootstrap.memory_lock=true
deploy:
resources:
limits:
memory: 2g
privileged: true
mem_limit: 2g
memswap_limit: 2g
ulimits:
memlock:
soft: -1
......
import { PostfachMailE2EComponent } from 'apps/alfa-e2e/src/components/postfach/postfach-mail.e2e.component';
import { PostfachMailPage } from 'apps/alfa-e2e/src/page-objects/postfach-mail.component.po';
import {
createPostfachNachrichtAttachedItem,
createPostfachNachrichtReplyItem,
} from 'apps/alfa-e2e/src/support/postfach-nachricht.util';
import { initVorgangAttachedItem } from 'apps/alfa-e2e/src/support/vorgang-attached-item-util';
import { VorgangListE2EComponent } from '../../../components/vorgang/vorgang-list.e2e.component';
import { VorgangE2E } from '../../../model/vorgang';
import { PostfachMailItemE2E, VorgangAttachedItemE2E } from '../../../model/vorgang-attached-item';
import { MainPage, waitForSpinnerToDisappear } from '../../../page-objects/main.po';
import { VorgangPage } from '../../../page-objects/vorgang.po';
import { dropCollections } from '../../../support/cypress-helper';
import { exist } from '../../../support/cypress.util';
import { initUsermanagerUsers, loginAsSabine } from '../../../support/user-util';
import { buildVorgang, createVorgang, initVorgaenge, objectIds } from '../../../support/vorgang-util';
describe('Postfach Nachrichten', () => {
const vorgangList: VorgangListE2EComponent = new MainPage().getVorgangList();
const vorgangPage: VorgangPage = new VorgangPage();
const postfachMailContainer: PostfachMailE2EComponent = vorgangPage.getPostfachMailcontainer();
const postfachMailPage: PostfachMailPage = new PostfachMailPage();
const vorgang: VorgangE2E = createVorgang();
const vorgangWithReply: VorgangE2E = { ...buildVorgang(objectIds[0], 'VorgangWithReply') };
const postfachMailReply: PostfachMailItemE2E = createPostfachNachrichtReplyItem();
const postfachNachrichtAttachedItem: VorgangAttachedItemE2E = {
...createPostfachNachrichtAttachedItem(objectIds[1], objectIds[0]),
item: postfachMailReply,
};
before(() => {
initVorgaenge([vorgang, vorgangWithReply]);
initVorgangAttachedItem([postfachNachrichtAttachedItem]);
initUsermanagerUsers();
loginAsSabine();
waitForSpinnerToDisappear();
exist(vorgangList.getRoot());
});
after(() => {
dropCollections();
});
describe('Display new message symbol', () => {
it('should not display blue icon without new message', () => {
vorgangList.getListItem(vorgang.name).getRoot().click();
waitForSpinnerToDisappear();
//exist => Briefsymbol
//notExist => blauer Punkt
});
it('should display icon on new message', () => {
vorgangPage.getSubnavigation().getBackButton().click();
vorgangList.getListItem(vorgangWithReply.name).getRoot().click();
waitForSpinnerToDisappear();
//exist => Symbol + blauer Punkt
});
});
describe('Actions to mark unread', () => {
it('should display action icon in subnavigation', () => {
postfachMailContainer.getList().click();
//exist Mark unread icon in subnavigation
});
it('should mark mails as unread on icon click', () => {
//click icon in subnavigation
vorgangPage.getSubnavigation().getBackButton().click();
//exist => Symbol + blauer Punkt
});
it('should show 1 unread Vorgang on Vorgang list', () => {
vorgangPage.getSubnavigation().getBackButton().click();
//ungelesene Nachrichten == 1
});
it('should display unread button below mails', () => {
vorgangList.getListItem(vorgangWithReply.name).getRoot().click();
waitForSpinnerToDisappear();
postfachMailContainer.getList().click();
//exist Button unter Mails
});
it('should mark mails as unread on button click', () => {
//click auf Button
vorgangPage.getSubnavigation().getBackButton().click();
//exist => Symbol + blauer Punkt
});
});
});
Source diff could not be displayed: it is too large. Options to address this: view the blob.
Source diff could not be displayed: it is too large. Options to address this: view the blob.
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment