Skip to content

Commit

Permalink
[Epic] New Donation Flow - New version of the Donation Flow (#1324)
Browse files Browse the repository at this point in the history
* New Donation Flow -  Choosing a payment method step (Card with Stripe)  (#1287)

* payment-process-stripe - add flow context

* payment-process-stripe - add choose amount component

* payment-process-stripe - connect the accordion group to work with formik now

* payment-process-stripe - connect the accordion card group to work with formik

* payment-process-stripe - add formik to the flow form

* payment-process-stripe - add the choose amount from the old donation flow

* payment-process-stripe - add disabled prop to the options on the cards

* payment-process-stripe - add the stripe payment intent to the context

* payment-process-stripe - add the stripe key to the runtime config

* payment-process-stripe - add locale to the stripe payment process

* dependencies - bump up minor next version to 13.1

* payment-process-stripe - add step splitter component

* payment-process-stripe - add mobile view for the payment method

* payment-process-stripe - add disabled and fix styling for the RadioAccordionGroup

* 1284 - add flow context

* 1284 - add choose amount component

* 1284 - connect the accordion group to work with formik now

* 1284 - connect the accordion card group to work with formik

* 1284 - add formik to the flow form

* 1284 - add the choose amount from the old donation flow

* 1284 - add disabled prop to the options on the cards

* 1284 - add the stripe payment intent to the context

* 1284 - add the stripe key to the runtime config

* 1284 - add locale to the stripe payment process

* dependencies - bump up minor next version to 13.1

* 1284 - add step splitter component

* 1284 - add mobile view for the payment method

* 1284 - add disabled and fix styling for the RadioAccordionGroup

* 1284 - rewrite DonationFlowPage styles to use the new `styled` api

* 1284 - remove unecessary `StyledLayout`

* 1284 - move tax calculations and checkbox to the PaymentMethod step

* 1284 - fix stripe promise and styling issues

* 1284 - fix mobile and tablet styling

* 1284 - remove stripe public key from the .env example file

* 1284 - add `<LinkAuthenticationElement />` for email on the stripe payment

* 1284 - fix rerendering issue on RadioCardItems

* a11y - add accessibility :focus styling to all buttons

* a11y - fix keyboard navigation for `LinkButton` component

* dependencies - update material dependencies

* 1284 - move stripePromise to DonationFlowContext instead of _app

* New Donation Flow -  Authentication form (#1294)

* payment-process-stripe - add flow context

* payment-process-stripe - add choose amount component

* payment-process-stripe - connect the accordion group to work with formik now

* payment-process-stripe - connect the accordion card group to work with formik

* payment-process-stripe - add formik to the flow form

* payment-process-stripe - add the choose amount from the old donation flow

* payment-process-stripe - add disabled prop to the options on the cards

* payment-process-stripe - add the stripe payment intent to the context

* payment-process-stripe - add the stripe key to the runtime config

* payment-process-stripe - add locale to the stripe payment process

* dependencies - bump up minor next version to 13.1

* payment-process-stripe - add step splitter component

* payment-process-stripe - add mobile view for the payment method

* payment-process-stripe - add disabled and fix styling for the RadioAccordionGroup

* 1284 - add flow context

* 1284 - add choose amount component

* 1284 - connect the accordion group to work with formik now

* 1284 - connect the accordion card group to work with formik

* 1284 - add formik to the flow form

* 1284 - add the choose amount from the old donation flow

* 1284 - add disabled prop to the options on the cards

* 1284 - add the stripe payment intent to the context

* 1284 - add the stripe key to the runtime config

* 1284 - add locale to the stripe payment process

* dependencies - bump up minor next version to 13.1

* 1284 - add step splitter component

* 1284 - add mobile view for the payment method

* 1284 - add disabled and fix styling for the RadioAccordionGroup

* 1284 - rewrite DonationFlowPage styles to use the new `styled` api

* 1284 - remove unecessary `StyledLayout`

* 1284 - move tax calculations and checkbox to the PaymentMethod step

* 1284 - fix stripe promise and styling issues

* 1284 - fix mobile and tablet styling

* 1284 - remove stripe public key from the .env example file

* 1284 - add `<LinkAuthenticationElement />` for email on the stripe payment

* 1284 - fix rerendering issue on RadioCardItems

* a11y - add accessibility :focus styling to all buttons

* a11y - fix keyboard navigation for `LinkButton` component

* dependencies - update material dependencies

* 1292 - add authentication form RadioAccordionGroup and initial skeleton

* 1292 - add the inline login form to the login step

* 1292 - add translation to the `Authentication`

* 1292 - fix Radio checks on the authentication form accordions

* 1292 - add ƒorm validation and initial values

* 1292 - add inline register form

* 1292 - add authentication folder

* 1292 - style form donate button

* 1292 - return yup.then to non-functions

* 1292 - fix payment method grid problem

* 1292 - remove stripe public key from example env

* 1292 - add heading to the form

* 1292 - move payment method components to a folder

* 1292 - change structure of the donation-flow directory

* 1292 - add docs to the RadioGroup components

* 1292 - fix context import

* 1292 - remove `stripe-fee-calculators.ts` from the payment-method folder

* 1292 - add `anonymous` as a seperate checkbox and field

* feat-7134 - add a `NOREGISTER` state to the authentication and a conditionally rendered checkbox

* feat-7134 - return the authentication on null if checkbox is unchecekd

* 1292 - add a noregister radio button and put the anonymous checkbox to be avaliable to both logged and unlogged users

* 1292 - add an email field for no-register users

* 1292 - arrange imports on the Authentication

* New Donation Flow - Form Data Flow and Stripe Card submission (#1311)

* payment-process-stripe - add flow context

* payment-process-stripe - add choose amount component

* payment-process-stripe - connect the accordion group to work with formik now

* payment-process-stripe - connect the accordion card group to work with formik

* payment-process-stripe - add formik to the flow form

* payment-process-stripe - add the choose amount from the old donation flow

* payment-process-stripe - add disabled prop to the options on the cards

* payment-process-stripe - add the stripe payment intent to the context

* payment-process-stripe - add the stripe key to the runtime config

* payment-process-stripe - add locale to the stripe payment process

* dependencies - bump up minor next version to 13.1

* payment-process-stripe - add step splitter component

* payment-process-stripe - add mobile view for the payment method

* payment-process-stripe - add disabled and fix styling for the RadioAccordionGroup

* 1284 - add flow context

* 1284 - add choose amount component

* 1284 - connect the accordion group to work with formik now

* 1284 - connect the accordion card group to work with formik

* 1284 - add formik to the flow form

* 1284 - add the choose amount from the old donation flow

* 1284 - add disabled prop to the options on the cards

* 1284 - add the stripe payment intent to the context

* 1284 - add the stripe key to the runtime config

* 1284 - add locale to the stripe payment process

* dependencies - bump up minor next version to 13.1

* 1284 - add step splitter component

* 1284 - add mobile view for the payment method

* 1284 - add disabled and fix styling for the RadioAccordionGroup

* 1284 - rewrite DonationFlowPage styles to use the new `styled` api

* 1284 - remove unecessary `StyledLayout`

* 1284 - move tax calculations and checkbox to the PaymentMethod step

* 1284 - fix stripe promise and styling issues

* 1284 - fix mobile and tablet styling

* 1284 - remove stripe public key from the .env example file

* 1284 - add `<LinkAuthenticationElement />` for email on the stripe payment

* 1284 - fix rerendering issue on RadioCardItems

* a11y - add accessibility :focus styling to all buttons

* a11y - fix keyboard navigation for `LinkButton` component

* dependencies - update material dependencies

* 1292 - add authentication form RadioAccordionGroup and initial skeleton

* 1292 - add the inline login form to the login step

* 1292 - add translation to the `Authentication`

* 1292 - fix Radio checks on the authentication form accordions

* 1292 - add ƒorm validation and initial values

* 1292 - add inline register form

* 1292 - add authentication folder

* 1292 - style form donate button

* 1292 - return yup.then to non-functions

* 1292 - fix payment method grid problem

* 1292 - remove stripe public key from example env

* 1292 - add heading to the form

* 1292 - move payment method components to a folder

* 1292 - change structure of the donation-flow directory

* 1292 - add docs to the RadioGroup components

* 1292 - fix context import

* 1292 - remove `stripe-fee-calculators.ts` from the payment-method folder

* 1292 - add `anonymous` as a seperate checkbox and field

* feat-7134 - add a `NOREGISTER` state to the authentication and a conditionally rendered checkbox

* feat-7134 - return the authentication on null if checkbox is unchecekd

* avatar-letters-hotfix - add a fallback to `given_name` and `family_name` avatar letters (#1300)

* put campaigns with status different than active at the bottom of the … (#1304)

* put campaigns with status different than active at the bottom of the list

* remove left out `console.log`

* Fix Campaigns section max width and alignment on Homepage and Campaigns page (#1303)

* Fix maxWidth of Campaigns section on Homepage

* Fix maxWidth for Campaigns section on Campaign page

* Fix alignment of campaigns page

* Fix spacings on campaigns section

* Remove unused import (#1306)

* 1292 - add a noregister radio button and put the anonymous checkbox to be avaliable to both logged and unlogged users

* 1292 - add an email field for no-register users

* 1292 - arrange imports on the Authentication

* Adding withdrawnAmount in Admin Campaign Grid (#1305)

* fixed scroll in admin campaign grid

* allow edit of public donor name for all donations - #1206

* fixed: misleading names for bank upload

* fixed typos valt vs vault

* moved: vault grid actions as first column

* fixed: editing of withdrawals and status change to successfully approved

* added: withdrawnAmount column in Admin Campaign grid

* forbid changes on succeeded withdrawal

---------

Co-authored-by: quantum-grit <[email protected]>

* 1299 - move out stripe `Elements` in a separate provider outside the form

* 1299 - add `formik-persist-values` dependency and session storage persistance

* 1299 - add create stripe donation endpoint

* 1299 - add update endpoint call to update the current payment intent

* 1299 - add a call to the createStripePayment endpoint before submitting

* 1299 - reorder imports

* 1299 - update form validation

* #1188, #1194 - Add POM for the E2E tests and update all tests (#1265)

* Created basic POM for the Playwright tests - initial commit

Added method and configurations

Additional refactoring - methods, specs and gitignore

Implemented Support page for E2E tests

Fixed tests for Support page

New changes on the tests

* Created basic POM for the Playwright tests - initial commit

Added method and configurations

Additional refactoring - methods, specs and gitignore

Implemented Support page for E2E tests

Fixed tests for Support page

New changes on the tests

Fixes on E2E tests

* Updated paths for the localization files for E2E

* Merge branch '1194-feature-create-playwright-page-object-model-for-the-e2e-tests' of https://github.com/podkrepi-bg/frontend into 1194-feature-create-playwright-page-object-model-for-the-e2e-tests

* Revert "Merge branch '1194-feature-create-playwright-page-object-model-for-the-e2e-tests' of https://github.com/podkrepi-bg/frontend into 1194-feature-create-playwright-page-object-model-for-the-e2e-tests"

This reverts commit 3bb8a19, reversing
changes made to b18b16b.

* Updated Readme file

* Fixed Sonar issues and updated Playwright version

Additional fix

* 1194 - init yarn project in the e2e folder and move out gitignore

* 1194 - fix ts errors

* 1194 - add e2e/.yarn to gitignore

* 1194 - remove e2e/.yarn

* 1194 - remove cached .yarn folder

* 1194 - change GH Action workflow to now run the `test:e2e`

* 1194 - change GH Action workflow to include artifacts of the reports and results

* 1194 - fix home.page.ts ts errors

* 1194 - remove hardcoded navigation to different environments

* 1194 - add installation of dependencies for the e2e folder  in the CI action

* 1194 - fix translation on the homepage

* 1194 - fix e2e script in the root folder

* 1194 - add a tsconfig.build.json to exclude e2e while next is building

* 1194 - add data based on the STAGING env variable

* 1194 - resolve environment related tests

* 1194 - remove uneccessasry `tsconfigPath` inside of the config

* 1194 - put video to `off` by default

* 1194 - add a clickCampaignByIndex method

* 1194 - remove campaign specific test and changed them to index based

* 1194 - add the index on the campaigns page list

* 1194 - change the expiry date tests data to `04 / 42`

* 1194 - add the index to the campaign card on the campaigns section on the home page

* 1194 - add `playwright` as a dependency for the project

* 1194 - add the changed `yarn.lock`

* 1194 - fix the support action button click test  to not click the card beforehand

---------

Co-authored-by: Daniel Takev <[email protected]>

* feat-7134 - add `yarn install --immutable` to the Github Workflow

* feat-7134 - update `yarn.lock`

* 1299 - fix `e2e` region pick test

---------

Co-authored-by: Ani <[email protected]>
Co-authored-by: quantum-grit <[email protected]>
Co-authored-by: quantum-grit <[email protected]>
Co-authored-by: Daniel Takev <[email protected]>

* New Donation Flow - Alerts and Summary Column (#1314)

* payment-process-stripe - add flow context

* payment-process-stripe - add choose amount component

* payment-process-stripe - connect the accordion group to work with formik now

* payment-process-stripe - connect the accordion card group to work with formik

* payment-process-stripe - add formik to the flow form

* payment-process-stripe - add the choose amount from the old donation flow

* payment-process-stripe - add disabled prop to the options on the cards

* payment-process-stripe - add the stripe payment intent to the context

* payment-process-stripe - add the stripe key to the runtime config

* payment-process-stripe - add locale to the stripe payment process

* dependencies - bump up minor next version to 13.1

* payment-process-stripe - add step splitter component

* payment-process-stripe - add mobile view for the payment method

* payment-process-stripe - add disabled and fix styling for the RadioAccordionGroup

* 1284 - add flow context

* 1284 - add choose amount component

* 1284 - connect the accordion group to work with formik now

* 1284 - connect the accordion card group to work with formik

* 1284 - add formik to the flow form

* 1284 - add the choose amount from the old donation flow

* 1284 - add disabled prop to the options on the cards

* 1284 - add the stripe payment intent to the context

* 1284 - add the stripe key to the runtime config

* 1284 - add locale to the stripe payment process

* dependencies - bump up minor next version to 13.1

* 1284 - add step splitter component

* 1284 - add mobile view for the payment method

* 1284 - add disabled and fix styling for the RadioAccordionGroup

* 1284 - rewrite DonationFlowPage styles to use the new `styled` api

* 1284 - remove unecessary `StyledLayout`

* 1284 - move tax calculations and checkbox to the PaymentMethod step

* 1284 - fix stripe promise and styling issues

* 1284 - fix mobile and tablet styling

* 1284 - remove stripe public key from the .env example file

* 1284 - add `<LinkAuthenticationElement />` for email on the stripe payment

* 1284 - fix rerendering issue on RadioCardItems

* a11y - add accessibility :focus styling to all buttons

* a11y - fix keyboard navigation for `LinkButton` component

* dependencies - update material dependencies

* 1292 - add authentication form RadioAccordionGroup and initial skeleton

* 1292 - add the inline login form to the login step

* 1292 - add translation to the `Authentication`

* 1292 - fix Radio checks on the authentication form accordions

* 1292 - add ƒorm validation and initial values

* 1292 - add inline register form

* 1292 - add authentication folder

* 1292 - style form donate button

* 1292 - return yup.then to non-functions

* 1292 - fix payment method grid problem

* 1292 - remove stripe public key from example env

* 1292 - add heading to the form

* 1292 - move payment method components to a folder

* 1292 - change structure of the donation-flow directory

* 1292 - add docs to the RadioGroup components

* 1292 - fix context import

* 1292 - remove `stripe-fee-calculators.ts` from the payment-method folder

* 1292 - add `anonymous` as a seperate checkbox and field

* feat-7134 - add a `NOREGISTER` state to the authentication and a conditionally rendered checkbox

* feat-7134 - return the authentication on null if checkbox is unchecekd

* avatar-letters-hotfix - add a fallback to `given_name` and `family_name` avatar letters (#1300)

* put campaigns with status different than active at the bottom of the … (#1304)

* put campaigns with status different than active at the bottom of the list

* remove left out `console.log`

* Fix Campaigns section max width and alignment on Homepage and Campaigns page (#1303)

* Fix maxWidth of Campaigns section on Homepage

* Fix maxWidth for Campaigns section on Campaign page

* Fix alignment of campaigns page

* Fix spacings on campaigns section

* Remove unused import (#1306)

* 1292 - add a noregister radio button and put the anonymous checkbox to be avaliable to both logged and unlogged users

* 1292 - add an email field for no-register users

* 1292 - arrange imports on the Authentication

* Adding withdrawnAmount in Admin Campaign Grid (#1305)

* fixed scroll in admin campaign grid

* allow edit of public donor name for all donations - #1206

* fixed: misleading names for bank upload

* fixed typos valt vs vault

* moved: vault grid actions as first column

* fixed: editing of withdrawals and status change to successfully approved

* added: withdrawnAmount column in Admin Campaign grid

* forbid changes on succeeded withdrawal

---------

Co-authored-by: quantum-grit <[email protected]>

* 1299 - move out stripe `Elements` in a separate provider outside the form

* 1299 - add `formik-persist-values` dependency and session storage persistance

* 1299 - add create stripe donation endpoint

* 1299 - add update endpoint call to update the current payment intent

* 1299 - add a call to the createStripePayment endpoint before submitting

* 1299 - reorder imports

* 1299 - update form validation

* #1188, #1194 - Add POM for the E2E tests and update all tests (#1265)

* Created basic POM for the Playwright tests - initial commit

Added method and configurations

Additional refactoring - methods, specs and gitignore

Implemented Support page for E2E tests

Fixed tests for Support page

New changes on the tests

* Created basic POM for the Playwright tests - initial commit

Added method and configurations

Additional refactoring - methods, specs and gitignore

Implemented Support page for E2E tests

Fixed tests for Support page

New changes on the tests

Fixes on E2E tests

* Updated paths for the localization files for E2E

* Merge branch '1194-feature-create-playwright-page-object-model-for-the-e2e-tests' of https://github.com/podkrepi-bg/frontend into 1194-feature-create-playwright-page-object-model-for-the-e2e-tests

* Revert "Merge branch '1194-feature-create-playwright-page-object-model-for-the-e2e-tests' of https://github.com/podkrepi-bg/frontend into 1194-feature-create-playwright-page-object-model-for-the-e2e-tests"

This reverts commit 3bb8a19, reversing
changes made to b18b16b.

* Updated Readme file

* Fixed Sonar issues and updated Playwright version

Additional fix

* 1194 - init yarn project in the e2e folder and move out gitignore

* 1194 - fix ts errors

* 1194 - add e2e/.yarn to gitignore

* 1194 - remove e2e/.yarn

* 1194 - remove cached .yarn folder

* 1194 - change GH Action workflow to now run the `test:e2e`

* 1194 - change GH Action workflow to include artifacts of the reports and results

* 1194 - fix home.page.ts ts errors

* 1194 - remove hardcoded navigation to different environments

* 1194 - add installation of dependencies for the e2e folder  in the CI action

* 1194 - fix translation on the homepage

* 1194 - fix e2e script in the root folder

* 1194 - add a tsconfig.build.json to exclude e2e while next is building

* 1194 - add data based on the STAGING env variable

* 1194 - resolve environment related tests

* 1194 - remove uneccessasry `tsconfigPath` inside of the config

* 1194 - put video to `off` by default

* 1194 - add a clickCampaignByIndex method

* 1194 - remove campaign specific test and changed them to index based

* 1194 - add the index on the campaigns page list

* 1194 - change the expiry date tests data to `04 / 42`

* 1194 - add the index to the campaign card on the campaigns section on the home page

* 1194 - add `playwright` as a dependency for the project

* 1194 - add the changed `yarn.lock`

* 1194 - fix the support action button click test  to not click the card beforehand

---------

Co-authored-by: Daniel Takev <[email protected]>

* feat-7134 - add `yarn install --immutable` to the Github Workflow

* feat-7134 - update `yarn.lock`

* 1299 - fix `e2e` region pick test

* 1299 - add `formik-persist-values` dependency and session storage persistance

* 1299 - add create stripe donation endpoint

* 1299 - reorder imports

* 1286 - add alerts column on desktop

* 1286 - add payment method alerts and create a separete types file

* 1286 - add authentication alert info

* 1286 - add hiding logic to the alerts boxes

* 1286 - remove recurring donations checkbox

* 1286 - add summary alert box skeleton

* 1286 - style summary alret box

* 1286 - add a privacy field and move the anonymous checkbox

* 1286 - add the splitter and fix typings

* 1286 - add mobile alerts

* 1286 - change authenticated text

* 1286 - remove mobile auth alerts on desktop

* 1286 - add strict typings to the form

* 1286 - split register validation

* 1286 - split login, general, amount validation

* 1286 - split initial form values

* 1286 - add error handling on the form submit requests

* 1286 - fix otherAmount field validation problems

* 1286 - change mutation configs to now use the mutationFn options

* 1286 - update authentication alert after stripe form initialization

* 1286 - add minus margins on the no registration alert

* 1286 - fix other field price overlap

* 1286 - add comment on the amount change

* 1286 - add `useDonationFlow` hook

* 1286 - comment out the `JSON.stringify(error)` and add a todo comment

* 1286 - add alert max-width to match the PaymentSummary alert

* 1286 - add PaymentSummaryAlert on mobile

* 1286 - add back button, and cancel confirmation dialog

* 1286 - adjust anchored alert width

* 1286 - swapped the change and confirmation buttons

* 1286 - removed unused imports

---------

Co-authored-by: Ani <[email protected]>
Co-authored-by: quantum-grit <[email protected]>
Co-authored-by: quantum-grit <[email protected]>
Co-authored-by: Daniel Takev <[email protected]>

* New Donation Flow - #1297 #1291 Bank Transfer flow and Success page (#1322)

* 1291 - add bank payment content and mobile alert

* 1291 - add loading state to the form and fix payment summary negative value bug

* 1291 - fix mobile styling on the bank payment element

* 1291 - add payment intent creation on the SSR

* 1291 - add prefetch of the stripe prices

* 1291 - arrange imports

* 1291 - add disabled styles to the RadioButton

* 1291 - add bank alert to be shown on desktop

* 1291 - fix bank alert margin error

* 1291 - add todo comment for the bank payment transfer

* 1291 - add `Collapse` animation to the payment method

* 1291 - add grey borders on the disabled RadioButton

* 1297 - change enum names

* 1297 - move Layout to a seperate component

* 1297 - add stripe as a separate service and add top-level await in next.config.js

* 1297 - add payment status page

* 1297 - fix form submission and add metadata for updated payment intent

* 1297 - adjust folder structure

* 1297 - add a loader to the success page

* 1297 - add instant routing to the success page on bank payment

* 1297 - social share list component

* 1297 - add link cards

* 1297 - update social share list button to use proper links and serialized url

* 1297 - fixup imports

* 1297 - add wish donation

* 1297 - swap session sid with person id

* 1297 - add the default value to be taken from the paymentIntent

* 1297 - fix server mismatch classess due to stripe elements check

* 1297 - set returns after error states in the form submission

* 1297 - remove the v2 suffix

* 1297 - move generalValidation over the validationSchema

* 1297 - fix routing and bank payment redirect

* 1297 - add localization language to the return url

* 1297 - change the url of the old donation page in the e2e tests

* New Donation Flow - 1297 Error handling and Fail page (#1330)

* 1297 - add fail graphic

* 1297 - change fail graphic for an `X`

* 1297 - fix ui problems when authenticated and add cancelation

* New Donation Flow - Translations (#1334)

* 1297 - add fail graphic

* 1297 - change fail graphic for an `X`

* 1297 - fix ui problems when authenticated and add cancelation

* 1295 - add translations to the amount step

* 1295 - add translations for the main form

* 1295 - add all en translations

* 1295 - fix translations on the success page

* 1295 - add some bulgarian translations

* 1295 - add donations and disable anonymous checkbox as true when not logged

* 1295 - fix radioButton xpath selector

* New Donation Flow - e2e tests, Finalization and QA (#1336)

* 1272-finalization - fix error translations and add loading states on session loading

* 1272-finalization - adjust default values, fix form state when the session expires

* 1272-finalization - remove old donation implementation and e2e tests

* 1272-finalization - remove one-time donation server side translations

* 1317 - add new donation page POM

* 1317 - add tests for the form submission with custom value

* 1317 - add tests for the status page

* 1317 - add data-testids to the needed components

* 1317 - add fail tests

* 1317 - fix failing error alert locator

* 1317 - return naming on the fixed tests

* 1272-finalization - fix translation on the privacy error field

* 1336 - remove old donation page from the smoke tests

* 1272 - update import of the `stripeFeeCalculators` in the function tests

* 1272 - add STRIPE_PUBLIC_KEY to the playwright workflow file

* 1272 - add animatino gif

* use STRIPE_DEV_PUBLISHABLE_KEY for playwright action

Signed-off-by: Ivan Milchev <[email protected]>

* 1272 - update stripe key env variable in playwright.yml

Co-authored-by: Ivan Milchev <[email protected]>

* 1272 - update stripe env variable name inside stripeClient

* 1272 - update e2e  files imports

* 1272 - next.config and .env.local.example with new stripe env key name

* 1272 - add inhertied env to the check-pr.yml config

* 1272 - change env to environment in check-pr.yml

* 1272 - add specific env variable

* 1272 - add environment as development

* 1272 - add env in the playwright.yml file

* 1272 - remove comment from playwright.yml

* 1272 - change out env for vars

* 1393 - Refactor and change out the donation flow to use Stripe.SetupIntents (#1396)

* add dzhaniivanov as a contributor for code (#1392)

* update README.md [skip ci]

* update .all-contributorsrc [skip ci]

---------

Co-authored-by: allcontributors[bot] <46447321+allcontributors[bot]@users.noreply.github.com>

* set komodor annotations for deployment

Signed-off-by: Ivan Milchev <[email protected]>

* 1393 - change apiEndpoints to use /stripe and add setup intent endpoint

* 1393 - add setup intent logic

* 1393 - fix the redirect endpoint url

* 1393 - put form data in the metadata of the setup intent

* 1393 - remove unneeded endpoint

* 1393 - remove unnused endpoints

* 1393 - remove email field from e2e tests

* 1393 - remove `createCheckoutSession` import

* 1393 - fix card payments with forced 3D auth

---------

Signed-off-by: Ivan Milchev <[email protected]>
Co-authored-by: allcontributors[bot] <46447321+allcontributors[bot]@users.noreply.github.com>
Co-authored-by: Ivan Milchev <[email protected]>

* 1272 - add error handling for bad auth cards on the status page

* fix: Resolve build errors after merging with master branch

* feat: Add recurring payment

* feat(stripe): Add field to collect card holder name

* fix: Use formik.cardRegion value when calculating fee in summary dialog

* fix: Resolve conflict due to duplication of type

* fix(donation-flow): Resolve next hydratation error
Was caused due to the usage of react-i18next instead of next-i18next

* refactor(donation-flow): Create subscription from setup intent

* fix(donation-flow): Confirm card in case of 3DS

* refactor(donation-flow): Abstract stripe payment creation into fn
The submit fn is large enough already

* chore(donation-flow): Send idempotent key for stripe requests
Needed to prevent creating of duplicate resources due to network error

* ui(donation-flow): Show stripe message errors instead of general one

* ui: Disable bank and unregistered selections for recurring payments
We can't initiate recurring payments via bank payments, and as of now unregistered users can't create recurring donation for campaign.
Disable them to prevent user confusion

* ui(i18n): Translate form errors

* ui(donation-flow): Change error states according to UI requirements

* fix(donation-flow): Confirm setupIntent only if it hasn't been confirmed
Stripe forbids to confirm setup intents, once it is with status succeeded

* chore(donation-flow): Reset form when payment has succeeded

* refactor: Change structure for better  resposiveness

* ui: Change tooltip design according to ui specs

* chore: Bring back SetupIntent call.
The UI related stuff seems to be sorted out

* ui: Fix otherAmount field being too large

* ui: Don't show desktop alerts for viewports <900px width

* chore: Remove unnecessary console.log

* ui: Fix DonationStatus page being too large

* i18n: Provide internalization for Share button

* fix: Fix hydratation errors

* e2e: Adapt e2e tests to latest changes

* chore: Retrieve latest payment intent after card confirmation
if card confirmation is needed, the result of the initial payment intent will be requires_action, thus redirecting with outdated status, causing user confusion.
If card requires additional actions, retrieve and return the latest payment_intent after card confirmation

* fix: Fix donation wishes not being attached to specific campaign

* fix: Donation status page being in loading state for bank donations
Disable donation wish as well, as we don't currently have a way to link that donation wish, to an upcoming bank donation

* fix: Next.js build errors

* Cancel SetupIntent incase of bank donation and user cancellation

* ui: Use same style for Stripe errors as form errors

* fix: Formik persisted values being applied to donation for any campaign

* tests: Fix e2e breakages after latest changes

* a11y: Fix not being to blur otherAmount input field

* fix: Build issues
Removed some unused imports and variables as well.

* fix: SessionStorage item not cleared after succeeded donation

* fix: Grid2 migration

* fix: Layout after MUI upgrade

* fix:e2e test

* fix: e2e tests

---------

Signed-off-by: Ivan Milchev <[email protected]>
Co-authored-by: Ani <[email protected]>
Co-authored-by: quantum-grit <[email protected]>
Co-authored-by: quantum-grit <[email protected]>
Co-authored-by: Daniel Takev <[email protected]>
Co-authored-by: Ivan Milchev <[email protected]>
Co-authored-by: allcontributors[bot] <46447321+allcontributors[bot]@users.noreply.github.com>
Co-authored-by: Alexander Petkov <[email protected]>
Co-authored-by: Aleksandar <[email protected]>
  • Loading branch information
9 people authored Oct 10, 2024
1 parent c87dcd4 commit ba44a83
Show file tree
Hide file tree
Showing 95 changed files with 5,270 additions and 2,358 deletions.
2 changes: 1 addition & 1 deletion .env.local.example
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,7 @@ GOOGLE_SECRET=

## Stripe ##
##############
STRIPE_PUBLIC_KEY=
STRIPE_PUBLISHABLE_KEY=

## Paypal ##
##############
Expand Down
4 changes: 4 additions & 0 deletions .github/workflows/playwright.yml
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,8 @@ name: Playwright tests
on:
workflow_call:
workflow_dispatch:
env:
STRIPE_DEV_PUBLISHABLE_KEY: ${{ vars.STRIPE_DEV_PUBLISHABLE_KEY }}

jobs:
run-playwright:
Expand Down Expand Up @@ -95,6 +97,8 @@ jobs:
- name: Start frontend
working-directory: ./frontend
run: yarn start &> frontend.log &
env:
STRIPE_PUBLISHABLE_KEY: ${{ env.STRIPE_DEV_PUBLISHABLE_KEY }}

- name: Install Playwright Browsers
working-directory: ./frontend/e2e
Expand Down
26 changes: 26 additions & 0 deletions e2e/data/donation-test.data.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
export const stripeSuccessFormData = {
cardNumber: '4242 4242 4242 4242',
name: 'E2e_TEST_NAME',
email: '[email protected]',
expiryDate: '04 / 42',
cvc: '424',
country: 'BG',
}

export const stripeErrorNoBalanceFormData = {
cardNumber: '4000 0000 0000 9995',
name: 'E2e_TEST_NAME',
email: '[email protected]',
expiryDate: '04 / 42',
cvc: '424',
country: 'BG',
}

export const stripeAuthenticationRequiredFormData = {
cardNumber: '4000 0027 6000 3184',
name: 'E2e_TEST_NAME',
email: '[email protected]',
expiryDate: '04 / 42',
cvc: '424',
country: 'BG',
}
17 changes: 4 additions & 13 deletions e2e/data/enums/donation-regions.enum.ts
Original file line number Diff line number Diff line change
@@ -1,14 +1,5 @@
// This enum should be used as a parameter for methods in E2E tests

// Check bgLocalizationOneTimeDonation["third-step"]["card-region"]
export enum bgDonationRegions {
EUROPE = 'Европа',
GREAT_BRITAIN = 'Великобритания',
OTHER = 'други',
}

export enum enDonationRegions {
EUROPE = 'Europe',
GREAT_BRITAIN = 'Great Britain',
OTHER = 'other',
export enum DonationRegions {
EUROPE = 'EU',
GREAT_BRITAIN = 'UK',
OTHER = 'Other',
}
8 changes: 4 additions & 4 deletions e2e/data/localization.ts
Original file line number Diff line number Diff line change
Expand Up @@ -13,8 +13,8 @@ import enLocalizationValidationJson from '../../public/locales/en/validation.jso
import bgLocalizationCampaignsJson from '../../public/locales/bg/campaigns.json'
import enLocalizationCampaignsJson from '../../public/locales/en/campaigns.json'

import bgLocalizationOneTimeDonationJson from '../../public/locales/bg/one-time-donation.json'
import enLocalizationOneTimeDonationJson from '../../public/locales/en/one-time-donation.json'
import bgLocalizationDonationFlowJson from '../../public/locales/bg/donation-flow.json'
import enLocalizationDonationFlowJson from '../../public/locales/en/donation-flow.json'

// All these constants are used in the E2E test pages to manipulate web elements in a respective language
// Common localization terms
Expand All @@ -30,8 +30,8 @@ export const enLocalizationSupport = enLocalizationSupportJson
export const bgLocalizationCampaigns = bgLocalizationCampaignsJson
export const enLocalizationCampaigns = enLocalizationCampaignsJson
// Donations
export const bgLocalizationOneTimeDonation = bgLocalizationOneTimeDonationJson
export const enLocalizationOneTimeDonation = enLocalizationOneTimeDonationJson
export const bgLocalizationDonationFlow = bgLocalizationDonationFlowJson
export const enLocalizationDonationFlow = enLocalizationDonationFlowJson
// Validations
export const bgLocalizationValidation = bgLocalizationValidationJson
export const enLocalizationValidation = enLocalizationValidationJson
8 changes: 0 additions & 8 deletions e2e/data/support-page-tests.data.ts
Original file line number Diff line number Diff line change
Expand Up @@ -5,11 +5,3 @@ export const supportPageVolutneerTestData = {
phone: '+359888000000',
comment: 'E2E Test comment',
}

export const anonDonationTestData = {
cardNumber: '4242 4242 4242 4242',
cardExpDate: '04 / 42',
cardCvc: '424',
billingName: 'E2E Test Anonymous Donation',
country: 'BG',
}
5 changes: 4 additions & 1 deletion e2e/pages/web-pages/campaigns/campaigns.page.ts
Original file line number Diff line number Diff line change
Expand Up @@ -29,10 +29,13 @@ export class CampaignsPage extends HomePage {
private readonly bgWishesButtonText = bgLocalizationCampaigns.campaign['wishes']
private readonly enWishesButtonText = enLocalizationCampaigns.campaign['wishes']

/**
* Ovverride the method from the BasePage and add the specific selector for the Campaigns page as default
*/
async checkPageUrlByRegExp(urlRegExpAsString?: string, timeoutParam = 10000): Promise<void> {
await this.page.waitForTimeout(1000)
await expect(this.page, 'The URL is not correct!').toHaveURL(
new RegExp(urlRegExpAsString || `^(.*?)/campaigns/${SLUG_REGEX}`),
new RegExp(urlRegExpAsString || `^(.*?)/(en/)?campaigns/${SLUG_REGEX}`),
{
timeout: timeoutParam,
},
Expand Down
244 changes: 0 additions & 244 deletions e2e/pages/web-pages/campaigns/donation.page.ts

This file was deleted.

Loading

0 comments on commit ba44a83

Please sign in to comment.