* feat: convert RWD cert projects
* feat: convert original projects
* fix: add usesMultiFileEditor to meta
* feat: add cypress tests for saving and loading to/from database
* fix: broken cypress tests
* fix: inconsistent variable naming
* fix: missed variable name
* fix: more cypress
* feat: add solutions for english
* fix: ctrl+s to database only if signed in
* fix: prioritize code from db
* refactor: expand the comments slightly
* feat: let users save cert project code to db
fix: move getChallenges call out of request function so it only runs once
fix: use FlashMessages enum
fix: transform challengeFiles earlier
test: make tribute page use multifile editor
stuff I was playing with - revert this to get it to a working state
refactor: allow undefined editableRegionBoundaries
fix: save history
history is not necessarily ["name.ext"] and using the incorrect history
could cause weird bugs
fix: replace files -> challengeFiles on the client
refactor: DRY out ajax
fix: use file -> challengefile map
refactor: rename ajax types
fix: alphatize flash-messages.ts
revert: tribute page project
fix: remove logs
fix: prettier
fix: cypress
fix: prettier
fix: remove submitComplete action
fix: block UI for new projects
fix: handle code size
* fix: catch undefined files
* fix: don't default to undefined when it's already the default
* fix: only update savedChallenges if applicable
* fix: dehumidify backend + fine tune nearby stuff
* fix: prop-types
* fix: dehumidify sagas
* fix: variable name
* fix: types
* Apply suggestions from code review
Co-authored-by: Shaun Hamilton <shauhami020@gmail.com>
* fix: typo
* fix: prettier
* fix: props types
* fix: flash messages
* Update client/src/utils/challenge-request-helpers.ts
Co-authored-by: Oliver Eyton-Williams <ojeytonwilliams@gmail.com>
* chore: rename function uniformize -> standardize
* fix: flash message
* fix: add link to forum on flash messages
Co-authored-by: Shaun Hamilton <shauhami020@gmail.com>
Co-authored-by: Oliver Eyton-Williams <ojeytonwilliams@gmail.com>
* fix: token rework functional
fix: clean up
fix: more clean up
fix: more clean up
fix: add widget back to settings
fix:
fix:
fix: cypress
Apply suggestions from code review
Co-authored-by: Oliver Eyton-Williams <ojeytonwilliams@gmail.com>
fix: use flash enum
* chore: rename webhookToken -> userToken
fix: add translations I forgot to save
* fix: add missing tones for flash messages
* fix: node test
* fix: add cert to email for when all certs are earned
* fix: unhide rdbms from production
* fix: cert project input field
* feat: add cypress tests
* fix: message on project pages to lower expectations
* fix: update instructions
* fix: add quincy's suggestions
* fix: add beta label and reorder
* fix: utils test
* fix: move rdbms to bottom of settings
* fix: cypress tests
* Apply suggestions from code review
Co-authored-by: Oliver Eyton-Williams <ojeytonwilliams@gmail.com>
* fix: only drop seeded users webhook tokens
Co-authored-by: Oliver Eyton-Williams <ojeytonwilliams@gmail.com>
fix: unhide cert from settings page
fix: add cert variables where missing
fix: show token on settings page
feat: add challenges to certified user data
fix: stylize settings page a little bit
fix: only show rdbms when upcomingChanges = true
fix: relational databases -> relational database
* fix: make breadcrumb nav more accessible
* refactor: cypress test and jest snapshot
* slight adjustment to left breadcrumb focus outline
* feat: translate aria for nav
* chore(tools): update snapshot
Co-authored-by: ahmad abdolsaheb <ahmad.abdolsaheb@gmail.com>
Co-authored-by: Naomi Carrigan <nhcarrigan@gmail.com>
* fix: scroll to certification section
* test: refactor and update show-cert
Pulls out the flaky code from the before hook (where a single failure
kills the suite) into the test. Also, the visit to settings to view the
certification only needed to happen once.
* chore: remove verify-can-claim-cert logic
* remove extraneous
* remove console log before Nich wakes up
* add api route back with flash
* remove unnecessary logic in completion-epic
* change tests for new layout
* dynamically use api location
* rename file
* fix Cypress api location
* fix(test): anchor does not have disabled class
* fix(tests): change js test to claim from /settings
* chore: change status to 410 (gone)
* update testing again
* oliver is nitpicky
Co-authored-by: Oliver Eyton-Williams <ojeytonwilliams@gmail.com>
* make oliver happy
Co-authored-by: Oliver Eyton-Williams <ojeytonwilliams@gmail.com>
* chore: update superblock properties
* refactor: remove isAudited from certs
It was always defaulting to English, anyway.
* refactor: get superblock from metas, not dirs
* fix: rename responsive-web-design-22
This converts the slugs to /2022/responsive-web-design
* refactor: remove unused export
* test: update test with new curriculum config
* refactor: use key not [key]
* refactor: remove directory reference from test
* test: login more directly
* test: separate login from other visits
In a single test, Cypress can only visit within a single domain, hence
the separation.
* chore: fail slowly for all strategies
* test: user certified user for showing cert
* test: fix and cleanup certifications
* feat: add data for preview to challengeMeta
* feat: allow creation of project preview frames
* feat: make project preview data available for frame
* refactor: simplify reducer
* feat: show project preview for first challenge
* feat: show project preview on MultiFile challenges
* test: check for presence/absence of preview modal
* fix: simplify previewProject saga
* test: uncomment project preview test
* fix: increase modal size + change modal title
* modal-footer
* feat: adjust preview size
* fix: remove margin, padding, and line-height for preview of finished projects
* Revert "fix: remove margin, padding, and line-height for preview of finished projects"
This reverts commit 0db11a0819.
* fix: remove margin on all previews
* refactor: use closeModal('projectPreview') for clarity
Co-authored-by: Shaun Hamilton <shauhami020@gmail.com>
* fix: get started -> start coding!
* fix: update closeModal type
Co-authored-by: moT01 <20648924+moT01@users.noreply.github.com>
Co-authored-by: Ahmad Abdolsaheb <ahmad.abdolsaheb@gmail.com>
Co-authored-by: Shaun Hamilton <shauhami020@gmail.com>
* chore: use constants for superblocks
* add prettier ts dec to challenge-helper-scripts
* config/ to ts. broken
* typescripterise tools/ and config/
* create global tsconfig, remove alternate configs
* delete temp ts->js, add to gitignore
* fix gitignore
* re-import SuperBlocks in super-block-intro.tsx
* remove renamed files added again
* fix config
* remove accidental files
* remove snap
* delete built files
* adjust eslintrc for enums
* add node types to root
* ignore build files in lint and prettier
* fix tools/ in tsconfig
* ignore annoying ts warnings
* prettierise Map/index.tsx
* fix enum to match lint rule
* rejig Map to render RWD superblock
* 'pretty minor' - implicitly tsc within root
Co-authored-by: Oliver Eyton-Williams <ojeytonwilliams@gmail.com>
* fix client/package.json for Gitpod
* broken: migrate @types to root
* fix: use typeRoots to prevent duplication
* fix show.tsx, try typeroots in root
* silly fix for duplicate node_modules types
* remove typeRoots from root
* fix: tsconfig or not tsconfig, that is the...
* fix: ...question: Whether 'tis nobler in the mind
to suffer the slings and arrows of outrageous configs...
* fix: Or to take Arms against a Sea of lint errors
And by opposing end them
Co-authored-by: Oliver Eyton-Williams <ojeytonwilliams@gmail.com>
* feat: Allow display username with uppercase characters
* fix: ensure user can change username to uppercased version
* fix: ensure that same username in a different case does not require validation
* fix: require login as step
* fix: cert rendering temporary
* fix: remove keys from other translation files
* fix: cypress test
* chore: shauns suggestions
* fix: remove steps
* fix: use a seperate UseEffect function
* Suggestions from Shaun
Co-authored-by: Shaun Hamilton <shauhami020@gmail.com>
* fix: certification temp rendering
* fix: cert temp rendering hopefully
* fix: button visibility and cert test
* fix: condition
* test: improve claim cert tests
Without npm run seed, retries will be in a different state.
Check the scroll position to (hopefully) catch the weird cert claim bug.
Co-authored-by: Shaun Hamilton <shauhami020@gmail.com>
Co-authored-by: Oliver Eyton-Williams <ojeytonwilliams@gmail.com>
* feat(Cypress): hotkey tests
* fix: test previous next for projects
* fix: link time-out firefox
* feat: test the "r" hotkey
* fix: change select back to body for now
* fix: retain navigation mode for video challenges
* test: find focused elements
* fix: move focus from panel before pressing 'r'
Co-authored-by: gikf <60067306+gikf@users.noreply.github.com>
* test: add hotkey test for backend
* test: remove redundant {esc} presses
* refactor: naming change
* fix: refactor properly
* fix: actually refactor it properly
Co-authored-by: gikf <60067306+gikf@users.noreply.github.com>
Co-authored-by: Oliver Eyton-Williams <ojeytonwilliams@gmail.com>
Co-authored-by: gikf <60067306+gikf@users.noreply.github.com>
* test: check that JS projects can be submitted.
* refactor: remove stale workflow comments
* refactor: remove redundant build
* chore: update Cypress version in CI
* test: create separate electron-only workflow
* test: put data-cy on correct button
* test: drop mailhog from electron CI
Co-authored-by: Shaun Hamilton <shauhami020@gmail.com>
* refactor: update differences comment
* test: separate toggling from logging in
* test: check solutions can be viewed on cert
Co-authored-by: Shaun Hamilton <shauhami020@gmail.com>
* Changes made as directed in the instructions
* second revision
* Third revision
* Cypress Test updated
* cypress test updation
* directly linking to top-contributors news page
Co-authored-by: Ilenia <nethleen@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>
* fix(client): fix client
* fix propType and add comment
* revert user.json prettification
* slight type refactor and payload correction
Co-authored-by: Oliver Eyton-Williams <ojeytonwilliams@gmail.com>
* update ChallengeFile type imports
* add cypress test for code-storage
* update test and storage epic
* fix Shaun's tired brain's logic
* refactor with suggestions
Co-authored-by: Oliver Eyton-Williams <ojeytonwilliams@gmail.com>
* update codeReset
* increate cypress timeout because firefox is slow
* remove unused import to make linter happy
* use focus on editor
Co-authored-by: Oliver Eyton-Williams <ojeytonwilliams@gmail.com>
* use more specific seletor for cypress editor test
* account for silly null challengeFiles
Co-authored-by: Oliver Eyton-Williams <ojeytonwilliams@gmail.com>
Co-authored-by: Oliver Eyton-Williams <ojeytonwilliams@gmail.com>
cy.intercept to ensure that the server has saved the submission
should('not.exist') since the modal leaves the dom
Co-authored-by: gikf <60067306+gikf@users.noreply.github.com>
Co-authored-by: gikf <60067306+gikf@users.noreply.github.com>