Skip to content

Commit 1e1e809

Browse files
Merge pull request #519 from frankframework/feat/onboarding-and-version
Added better onboarding and fixed versioning
2 parents c8330c4 + 620d723 commit 1e1e809

22 files changed

+264
-58
lines changed

.github/workflows/ci.yaml

Lines changed: 1 addition & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -112,20 +112,8 @@ jobs:
112112
run: pnpm install --frozen-lockfile --ignore-scripts
113113
working-directory: src/main/frontend
114114

115-
116-
- name: Calculate Dynamic Version
117-
run: |
118-
RUN_NUM=${{ github.run_number }}
119-
printf -v PADDED "%03d" $RUN_NUM
120-
PATCH=${PADDED: -1}
121-
MINOR=${PADDED: -2:1}
122-
MAJOR=${PADDED:0:${#PADDED}-2}
123-
NEW_VERSION="$MAJOR.$MINOR.$PATCH"
124-
125-
echo "APP_VERSION=$NEW_VERSION" >> $GITHUB_ENV
126-
127115
- name: Build
128-
run: mvn clean package -DskipTests "-Dspring.profiles.active=prod" -Drevision="${{ env.APP_VERSION }}"
116+
run: mvn clean package -DskipTests "-Dspring.profiles.active=prod" -Drevision="0.0.${{ github.run_number }}"
129117

130118
# Install the cosign tool except on PR
131119
# https://github.com/sigstore/cosign-installer

src/main/frontend/cypress/e2e/release-details.cy.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ describe('Release Details Page Journey', () => {
22
beforeEach(() => {
33
cy.visit('/');
44
cy.get('app-loader', { timeout: 10000 }).should('not.exist');
5+
cy.dismissReleaseCatalogusModal()
56
});
67

78
it('should navigate to release details page and display all content correctly', () => {

src/main/frontend/cypress/e2e/release-graph.cy.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ describe('Graph Rendering and Interaction', () => {
22
beforeEach(() => {
33
cy.visit('/');
44
cy.get('app-loader', { timeout: 5000 }).should('not.exist');
5+
cy.dismissReleaseCatalogusModal();
56
cy.get('.graph-container > svg').as('graphSvg');
67
});
78

src/main/frontend/cypress/e2e/release-roadmap.cy.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,7 @@ describe('Release Roadmap End-to-End Tests', () => {
3434
cy.clock(TODAY.getTime(), ['Date', 'setTimeout', 'clearTimeout', 'setInterval', 'clearInterval']);
3535

3636
cy.visit('/');
37+
cy.dismissReleaseCatalogusModal();
3738
cy.get('app-header').find('li').contains('Roadmap').click();
3839

3940
cy.tick(5000);

src/main/frontend/cypress/e2e/release-vulnerabilities.cy.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ describe('Release Vulnerabilities Component', () => {
22
beforeEach(() => {
33
cy.visit('/');
44
cy.get('app-loader', { timeout: 10000 }).should('not.exist');
5+
cy.dismissReleaseCatalogusModal()
56
});
67

78
it('should display vulnerabilities when navigating to release details', () => {

src/main/frontend/cypress/e2e/routing.cy.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
describe('Application Routing', () => {
22
beforeEach(() => {
33
cy.visit('/');
4+
cy.dismissReleaseCatalogusModal();
45
cy.get('app-header').find('li').contains('Roadmap').click();
56
});
67

src/main/frontend/cypress/support/commands.ts

Lines changed: 26 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -8,30 +8,29 @@
88
// commands please read more here:
99
// https://on.cypress.io/custom-commands
1010
// ***********************************************
11-
//
12-
//
13-
// -- This is a parent command --
14-
// Cypress.Commands.add('login', (email, password) => { ... })
15-
//
16-
//
17-
// -- This is a child command --
18-
// Cypress.Commands.add('drag', { prevSubject: 'element'}, (subject, options) => { ... })
19-
//
20-
//
21-
// -- This is a dual command --
22-
// Cypress.Commands.add('dismiss', { prevSubject: 'optional'}, (subject, options) => { ... })
23-
//
24-
//
25-
// -- This will overwrite an existing command --
26-
// Cypress.Commands.overwrite('visit', (originalFn, url, options) => { ... })
27-
//
28-
// declare global {
29-
// namespace Cypress {
30-
// interface Chainable {
31-
// login(email: string, password: string): Chainable<void>
32-
// drag(subject: string, options?: Partial<TypeOptions>): Chainable<Element>
33-
// dismiss(subject: string, options?: Partial<TypeOptions>): Chainable<Element>
34-
// visit(originalFn: CommandOriginalFn, url: string, options: Partial<VisitOptions>): Chainable<Element>
35-
// }
36-
// }
37-
// }
11+
12+
// Required for TypeScript to treat this as a module and allow `declare global`
13+
export {};
14+
15+
declare global {
16+
namespace Cypress {
17+
interface Chainable {
18+
dismissReleaseCatalogusModal(): Chainable<void>;
19+
}
20+
}
21+
}
22+
23+
/**
24+
* Dismiss the release catalogus modal if it appears.
25+
* The modal opens automatically on fresh sessions.
26+
*/
27+
Cypress.Commands.add('dismissReleaseCatalogusModal', () => {
28+
cy.get('app-root', { timeout: 10000 }).should('exist');
29+
cy.wait(500);
30+
cy.get('body').then(($body) => {
31+
if ($body.find('app-modal').length > 0) {
32+
cy.get('app-modal button.close-btn').click();
33+
cy.get('app-modal').should('not.exist');
34+
}
35+
});
36+
});
Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
<div class="gesture-indicator grab-gesture">
2+
<img alt="Gesture image" class="icon" [src]="imageSrc" />
3+
<span>{{ gestureDescription }}</span>
4+
</div>
Lines changed: 47 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,47 @@
1+
.gesture-indicator {
2+
width: 270px;
3+
height: 200px;
4+
display: flex;
5+
flex-direction: column;
6+
align-items: center;
7+
justify-content: center;
8+
gap: 2rem;
9+
margin-block: 2rem;
10+
}
11+
12+
.icon {
13+
width: 50%;
14+
height: auto;
15+
animation: grab-move-right 2.5s infinite ease-in-out;
16+
}
17+
18+
span {
19+
text-align: center;
20+
}
21+
22+
@keyframes grab-move-right {
23+
0% {
24+
transform: translateX(-60px) scale(1);
25+
opacity: 0;
26+
}
27+
28+
15% {
29+
transform: translateX(-60px) scale(1);
30+
opacity: 1;
31+
}
32+
33+
25% {
34+
transform: translateX(-60px) scale(0.9);
35+
opacity: 1;
36+
}
37+
38+
85% {
39+
transform: translateX(60px) scale(0.9);
40+
opacity: 1;
41+
}
42+
43+
100% {
44+
transform: translateX(60px) scale(1);
45+
opacity: 0;
46+
}
47+
}
Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
import { Component, Input } from '@angular/core';
2+
3+
@Component({
4+
selector: 'app-gesture',
5+
standalone: true,
6+
imports: [],
7+
templateUrl: './gesture.component.html',
8+
styleUrl: './gesture.component.scss',
9+
})
10+
export class GestureComponent {
11+
@Input() imageSrc = '';
12+
@Input() gestureDescription = '';
13+
}

0 commit comments

Comments
 (0)