* fix(client): convert challengeFiles->files before sending to api
* update use of user.completeChallenges
* parse response in ajax, pre-typing
* add typing to getSessionUser
* refactor: use Omit
* fix: reorganise getSessionUser
* refactor ajax for simplicity
* refactor to be worse
* allow for undefined completedChallenges
Co-authored-by: Oliver Eyton-Williams <ojeytonwilliams@gmail.com>
Co-authored-by: Oliver Eyton-Williams <ojeytonwilliams@gmail.com>
* chore: rename APIs and Microservices to include "Backend" (#42515)
* fix typo
* fix typo
* undo change
* Corrected grammar mistake
Corrected a grammar mistake by removing a comma.
* change APIs and Microservices cert title
* update title
* Change APIs and Microservices certi title
* Update translations.json
* update title
* feat(curriculum): rename apis and microservices cert
* rename folder structure
* rename certificate
* rename learn Markdown
* apis-and-microservices -> back-end-development-and-apis
* update backend meta
* update i18n langs and cypress test
Co-authored-by: Shaun Hamilton <shauhami020@gmail.com>
* fix: add development to front-end libraries (#42512)
* fix: added-the-word-Development-to-front-end-libraries
* fix/added-the-word-Development-to-front-end-libraries
* fix/added-word-development-to-front-end-libraries-in-other-related-files
* fix/added-the-word-Development-to-front-end-and-all-related-files
* fix/removed-typos-from-last-commit-in-index.md
* fix/reverted-changes-that-i-made-to-dependecies
* fix/removed xvfg
* fix/reverted changes that i made to package.json
* remove unwanted changes
* front-end-development-libraries changes
* rename backend certSlug and README
* update i18n folder names and keys
* test: add legacy path redirect tests
This uses serve.json from the client-config repo, since we currently use
that in production
* fix: create public dir before moving serve.json
* fix: add missing script
* refactor: collect redirect tests
* test: convert to cy.location for stricter tests
* rename certificate folder to 00-certificates
* change crowdin config to recognise new certificates location
* allow translations to be used
Co-authored-by: Nicholas Carrigan (he/him) <nhcarrigan@gmail.com>
* add forwards slashes to path redirects
* fix cypress path tests again
* plese cypress
* fix: test different challenge
Okay so I literally have no idea why this one particular challenge
fails in Cypress Firefox ONLY. Tom and I paired and spun a full build
instance and confirmed in Firefox the page loads and redirects as
expected. Changing to another bootstrap challenge passes Cypress firefox
locally. Absolutely boggled by this.
AAAAAAAAAAAAAAA
* fix: separate the test
Okay apparently the test does not work unless we separate it into
a different `it` statement.
>:( >:( >:( >:(
Co-authored-by: Sujal Gupta <55016909+heysujal@users.noreply.github.com>
Co-authored-by: Noor Fakhry <65724923+NoorFakhry@users.noreply.github.com>
Co-authored-by: Oliver Eyton-Williams <ojeytonwilliams@gmail.com>
Co-authored-by: Nicholas Carrigan (he/him) <nhcarrigan@gmail.com>
* feat: initial button setup client
* feat: rename walletsButton to .tsx
* chore: typescriptize wallet component
* chore: re-add keys to config, env, etc + check in gatsby-node
* feat: refactor donate form and wallet component
* feat(client): set labels correctly
* chore: add stripe package back to server
* chore: add stripe back to allowed paths
* chore: copy donate.js code from PR #41924
* feat: attempt to make back end work
* feat: make redux work
* feat: clean up
* feat: hokify
* feat: add error handling
* fix: back-end should be working
* fix: type errors
* fix: clean up back-end
* feat:addd styles
* feat: connect the client to the api
* feat: display wallets button everywhere
* test: add stripe key for cypress action
* test: fix for cypress tests
* test: cypress tests again
* test: maybe?
* test: more
* test: more
* test: more
* test
* askdfjasklfj
* fix: tests finally?
* revert: remove space from cypress yaml action
* remove logs
Co-authored-by: moT01 <20648924+moT01@users.noreply.github.com>
Co-authored-by: Oliver Eyton-Williams <ojeytonwilliams@gmail.com>
* fix: remove circular dependency
redux depended on templates/Challenges/redux and vice versa. This
meant that import order mattered and confusing bugs could arise.
(cherry picked from commit 7d67a4e70922bbb3051f2f9982dcc69e240d43dc)
* feat: require imports to be in alphabetical order
Import order generally does not matter, but there are edge cases
(circular imports and css imports, for example) where changing order
changes behaviour
(cherry picked from commit b8d1393a91ec6e068caf8e8498a5c95df68c2b2c)
* chore: order imports
* fix: lift up challenge description + title comps
This brings the classic Show closer to the others as they
now all create the description and title components
* fix: remove donation-saga/index circular import
(cherry picked from commit 51a44ca668a700786d2744feffeae4fdba5fd207)
* refactor: extract action-types from settings
(cherry picked from commit 25e26124d691c84a0d0827d41dafb761c686fadd)
* fix: lint errors
* feat: prevent useless renames
* fix: display legacy certs like the current ones
* fix: link projects in legacy certs to project pages
* fix: update tests to changed legacy cert display
* fix: update tests for removed legacy certs forms
* fix: display legacy certs like the current ones
* fix: submit projects for cert on projects pages
* fix: remove legacy certs form submitting handling
* fix: move claiming cert setup before both tests
* fix: remove legacy cert update props and actions
* fix: remove legacy cert updates from api
* fix: correct merge conflict
* fix(api): return json for delete + reset-progress
* refactor(api): make .json calls explicit
These .send() calls had objects as arguments. Using .json() makes it
explicit without changing behaviour.
* fix: return json or redirectWithFlash
We should never be getting requests for plain text, but if we do they
should be redirected back to the client.
* fix: prioritize JSON responses
If accepted, respond with JSON. If not, it's probably a bad request.
* refactor: bring api jest tests to root
* refactor: pull client tests to root
* fix: remove ancient curriculum babelrc
* feat: run all jest tests at once
* fix: remove unused babelrcRoot
* chore: remove more jests
* feat(docker): build and use client and api images
* feat: always use .env
dotenv fails without throwing if the .env file is missing and never
overwrites variables if they already exist. As such, we can use it in
build pipelines.
* fix: remove quotes from env vars
dotenv normalises quoted and unquoted strings (X=x, X='x' and
X="x") all become the same .env object {X: 'x'}. However, Docker's
env_file does not (the three cases are distinct). As a result, we
should use unquoted strings for consistency.
* fix: provide custom warning when .env is missing
* feat(docker): include client-config
* fix(docker): remove build packages from api image
* fix(docker): run script from correct dir
* fix(docker): correct permissions and dests
* fix(docker): consolidate run steps
This is standard practice, but did not have a noticable affect on the
image size
* fix(docker): clean the npm cache
Prior to this step the image was 1.11GB uncompressed and we got a modest
saving, 1.09GB after.
* refactor(docker): regexless COPY directives
* feat(docker): use alpine
This shrinks the image down to 259MB
* fix(docker): update build scripts
* fix: correct the server Dockerfile RUNs
* DEBUG: expose mysql port for seeding
* chore: update client Dockerfile's node versions
* fix: remove executable permissions from index.js
It's not a cli, so I don't think it needs to be executable.
* chore: update node and remove stale comments
* feat: use ENTRYPOINT + CMD to allow runtime config
* fix: add CURRICULUM_LOCALE arg
* feat: allow client port configuration
* feat: allow api port to be configured
* refactor: use unique variable names for ports
* fix: add default CLIENT_PORT
* refactor: clean up