Skip to content

Commit 2215f82

Browse files
committed
Merge branch 'staging' into feat/dark-mode
2 parents b778643 + 82a21ed commit 2215f82

File tree

5 files changed

+28
-28
lines changed

5 files changed

+28
-28
lines changed

.github/workflows/e2e.yml

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -76,3 +76,12 @@ jobs:
7676
- name: Start E2E tests
7777
working-directory: api
7878
run: ./scripts/run_e2e_ci.sh
79+
# Upload Cypress artifacts
80+
- name: Upload Cypress screenshots
81+
if: always()
82+
uses: actions/upload-artifact@v4
83+
with:
84+
name: cypress-screenshots
85+
path: frontend/cypress/screenshots
86+
retention-days: 7
87+
if-no-files-found: ignore

app/components/Statements/StatementForm.jsx

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -116,6 +116,7 @@ export class StatementForm extends React.Component {
116116

117117
return (
118118
<form
119+
data-cy="statement-form"
119120
ref={this.containerRef}
120121
onSubmit={handleSubmit(this.handleSubmit)}
121122
className={cn('bg-white dark:bg-background rounded-lg shadow-lg dark:shadow-xl border border-gray-200 dark:border-border', {

app/components/VideoDebate/ActionBubbleMenu.jsx

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -139,6 +139,14 @@ export const ActionBubble = ({
139139
...props
140140
}) => (
141141
<div
142+
role="button"
143+
tabIndex={0}
144+
onKeyDown={(e) => {
145+
if (e.key === 'Enter' || e.key === ' ') {
146+
props.onClick?.()
147+
}
148+
}}
149+
data-cy="action-bubble"
142150
className={cn(
143151
'mb-2 first:mb-0 transition-all duration-300',
144152
'cursor-pointer shadow-md hover:shadow-lg right-0',

cypress.config.js

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,8 @@ const { defineConfig } = require('cypress')
33
module.exports = defineConfig({
44
projectId: 'iivzis',
55
videoUploadOnPasses: false,
6+
screenshotOnRunFailure: true,
7+
screenshotsFolder: 'cypress/screenshots',
68
env: {
79
CYPRESS_API_URL: 'http://localhost:4000',
810
CYPRESS_USERNAME: 'Captain',
Lines changed: 8 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -1,40 +1,20 @@
11
describe('Can add and edit statements', () => {
2-
it('adds a new statement then edits it', () => {
2+
it('adds a new statement', () => {
33
const statementText = `Cypress statement ${Date.now()}`
4-
const updatedStatementText = `${statementText} - edited`
54

65
cy.login().then(() => {
76
cy.visit('/videos/Jzqg')
87

9-
cy.contains('div', 'Add a Statement', { matchCase: false, timeout: 10000 }).parent().click()
10-
11-
cy.get('#col-video')
12-
.find('a[href^="/s/"]')
13-
.first()
14-
.invoke('text')
15-
.then((speakerName) => {
16-
if (speakerName) {
17-
cy.get('input[name="speaker_id"]').type(`${speakerName.trim()}{enter}`, { force: true })
18-
}
19-
})
20-
21-
cy.get('textarea[name="text"]').type(statementText)
22-
8+
// Add a statement
9+
cy.contains('[data-cy="action-bubble"]', 'Add a Statement').click()
10+
cy.get('[data-cy="statement-form"] textarea[name="text"]').type(statementText)
2311
cy.contains('button[type=submit]', 'Save').click()
2412

25-
cy.contains('blockquote', statementText, { timeout: 15000 }).should('exist')
26-
27-
cy.contains('[data-cy="statement"]', statementText)
28-
.find('button[aria-haspopup="menu"]')
29-
.click()
30-
31-
cy.contains('[role="menuitem"]', 'Edit').click()
32-
33-
cy.get('textarea[name="text"]').clear().type(updatedStatementText)
34-
13+
cy.contains('A speaker should be added. To continue without one, press "Save".').should(
14+
'exist',
15+
)
3516
cy.contains('button[type=submit]', 'Save').click()
36-
37-
cy.contains('[data-cy="statement"]', updatedStatementText, { timeout: 15000 }).should('exist')
17+
cy.contains('[data-cy="statement"]', statementText, { timeout: 15000 }).should('exist')
3818
})
3919
})
4020
})

0 commit comments

Comments
 (0)