Commit Graph

86 Commits

Author SHA1 Message Date
Oliver Eyton-Williams
2a7b220a4f feat: support beforeEach and afterEach (#60921)
Co-authored-by: Shaun Hamilton <shauhami020@gmail.com>
2025-07-07 10:46:09 +00:00
Oliver Eyton-Williams
7a424171d2 chore: update required pnpm version to >=10 (#60285) 2025-05-12 18:57:18 +05:30
Oliver Eyton-Williams
5ef98680f9 refactor: remove unused vars (#59658) 2025-04-10 10:06:46 -05:00
Anna
3104c9e057 feat: test page structure (#59113)
Co-authored-by: Naomi <accounts+github@nhcarrigan.com>
Co-authored-by: Oliver Eyton-Williams <ojeytonwilliams@gmail.com>
2025-04-01 15:32:52 -05:00
Oliver Eyton-Williams
96d62330cd feat(client): support beforeAll in DOM challenge tests (#59001) 2025-02-28 14:03:18 +02:00
Oliver Eyton-Williams
6e9513a933 chore: upgrade eslint (#58575) 2025-02-07 22:48:43 +02:00
Tom
8ec9e5cc52 feat(challenge-parser): add transcript to challenge parser (#57967) 2025-01-09 07:17:22 +01:00
Tom
75401e13ee feat(client, challenge-parser): add explanation to challenges (#56472) 2024-10-04 14:59:50 -03:00
Oliver Eyton-Williams
321915cbe9 refactor(parser): helper to get paragraph content (#56326) 2024-10-04 09:42:41 -05:00
Lars Kappert
d32e57813e chore: update Knip to v5 (#56244) 2024-09-26 13:12:00 +02:00
Oliver Eyton-Williams
ffe765dac1 refactor: quiz challenge question format (#56285) 2024-09-25 10:41:38 -07:00
Oliver Eyton-Williams
e95b040762 refactor: create and use all-section parser (#56282) 2024-09-25 10:04:16 -07:00
Oliver Eyton-Williams
21fa84348c fix(tools): broken import (#56278) 2024-09-25 17:37:30 +09:00
Oliver Eyton-Williams
435cbc0024 refactor: clean up parser test code (#56271) 2024-09-25 13:04:27 +05:30
Tom
c8f272d3c3 feat(challenge-parser/client): add quiz challenge type (#56058)
Co-authored-by: Jessica Wilkins <67210629+jdwilkin4@users.noreply.github.com>
2024-09-24 21:18:17 +05:30
Oliver Eyton-Williams
8b601d762e feat: allow TS to be used in challenges (#56159) 2024-09-19 18:44:09 -04:00
Tom
a9a1081564 feat(challenge-parser): allow many questions in MC challenge (#55928) 2024-09-19 09:56:47 -05:00
Anna
973b7175c9 fix(curriculum): use-blank-word-instead-of-char (#55444) 2024-07-18 20:13:10 -05:00
Mrugesh Mohapatra
dabea4a904 chore: bump pnpm version 2024-05-18 17:23:23 +05:30
Oliver Eyton-Williams
3b9ae66a64 fix: more specific formatting error message (#53626) 2024-02-09 22:15:00 +05:30
Oliver Eyton-Williams
9fe6a46b81 feat: nicer formatting for fill in the blank challenges (#52552) 2023-12-18 23:33:20 +00:00
Tom
a31f6637d7 feat(client/curriculum): add dialogue animations (#52543) 2023-12-15 16:29:45 +01:00
Joy Shaheb
d9881d9ffa feat(curriculum): dice game project (#50819)
Co-authored-by: Naomi Carrigan <nhcarrigan@gmail.com>
Co-authored-by: jdwilkin4 <jwilkin4@hotmail.com>
2023-12-14 20:03:20 -08:00
Eric Do
70b4044c6c feat(tools/challenge-parser): Add tests to fill-in-the-blank parser (#52451) 2023-12-07 11:18:52 -06:00
Shaun Hamilton
fb1a5ab16f fix(tools): allow long-form of language id (#52442) 2023-11-28 15:53:41 -06:00
Tom
ddc459e71e feat(client/curriculum): add upcoming english superblock and challenge types (#52201) 2023-11-09 10:08:51 +01:00
Tom
bce1b9915b feat(challenge-parser): add feedback to mc questions (#51942) 2023-11-02 08:28:53 +02:00
Krzysztof G
d7e0f59528 fix: typos in names (#51896)
Co-authored-by: Viktor Szépe <viktor@szepe.net>
2023-10-11 07:33:56 +03:00
Mrugesh Mohapatra
b5c86d4b9c feat(e2e): adding playwright and migrate landing page e2e tests (#51216)
Co-authored-by: Ahmad <57593864+Ahmadkashif@users.noreply.github.com>
Co-authored-by: Hassaan Pasha <pasha.hassaan@gmail.com>
2023-08-11 14:10:10 +05:30
Oliver Eyton-Williams
69d6ee32bf feat: python in the browser (#50913)
Co-authored-by: Beau Carnes <1513130+beaucarnes@users.noreply.github.com>
2023-07-28 07:36:25 +02:00
Oliver Eyton-Williams
b1929258c0 chore: remove remnants of comment counting code (#49704)
* chore: remove unused scripts

* chore: remove unused comment counting code

* Update tools/challenge-parser/translation-parser/index.js

Co-authored-by: Naomi Carrigan <nhcarrigan@gmail.com>

---------

Co-authored-by: Sem Bauke <semboot699@gmail.com>
Co-authored-by: Naomi Carrigan <nhcarrigan@gmail.com>
2023-04-13 08:47:02 -07:00
Mrugesh Mohapatra
e5590e56d7 chore: use pnpm v8 for deps (#49892)
Co-authored-by: Shaun Hamilton <shauhami020@gmail.com>
2023-03-29 20:18:49 +05:30
renovate[bot]
7ecf6a44bc chore(deps): update jest monorepo to v29 (major) (#49775)
* chore(deps): update jest monorepo to v29

* chore: install jest-environment-jsdom

* chore: update snapshots

* fix: update config to transform nanoid+uuid

* chore: update babel's node target

This does not seem strictly necessary, but is probably for the best.

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Oliver Eyton-Williams <ojeytonwilliams@gmail.com>
2023-03-21 12:37:23 +00:00
Oliver Eyton-Williams
c498c06259 fix(deps): add missing dependencies + fix knip (#49691)
* refactor: use pnpm dlx over npx

* fix: create config before running knip

* chore: fix challenge-parser dependencies

* chore: add missing client + plugin dependencies

* chore: pin deps
2023-03-13 19:38:19 +05:30
Oliver Eyton-Williams
d7848ae01a feat: migrate to pnpm for better workspace DX (#49293)
* feat: npm -> pnpm 

This resolves the issues with the gatsby client (gatsby-plugin-pnpm
deals with the fact that gatsby is relying on its own dependencies
being de-duped)
and challenge-editor (which doesn't seem to want to automatically install
codemirror and needed its own eslint config)

* fix: correct mocha path for curriculum tests

* fix: use select workspace with -F not -w

* fix: reorganise packages and restrict hoisting

pnpm works best if the workspaces keep their own dependencies, since
dependencies are not flattened and then what node resolves from a
require is predictable.

@types seem to be a special case and more care is required to prevent
them getting smushed together in the root (hence the .npmrc)

* fix: add types for tools + root

* fix: decouple challenge-auditor from client

* fix: add ui-components types

* fix(client): use the latest types for react 16

* fix: prettify

* fix: prettierignore pnpm-lock

* fix: relax hoisting

Turns out pnpm works just fine with types. I don't know what was going
wrong before, but there are no-longer any type conflicts.

* fix: add @redux-saga/core to fix eslint issue

It seems to only be redux-saga that import/named can't cope with, so it
is probably okay to work around this one.

* chore: add chai to tools/scripts/build

* fix: add store to root for cypress

* fix: allow cypress to download binaries

If we want to keep preventing cypress from downloading binaries, we can
figure out a workaround, but I'm allowing it to ease the transition to
pnpm.

My guess about why this is happening is that npm triggers Cypress's
postinstall script, but pnpm does not (because pnpm install only
installs if necessary, perferring to link)

* chore: re-enable pre/post scripts

* fix: update build scripts for client

Co-authored-by: Shaun Hamilton <shauhami020@gmail.com>

* chore: update engines to use pnpm


* fix: enable choice of (super)block for tests

Only 'nix machines for now.

* chore: pin pnpm to version 7

* chore: remove last npms

Except web + curriculum-server. I'll update them when I start work on
them again.

* fix: lockfile check to catch any package-locks

* fix(action): install pnpm for upcoming tests

* chore: add nodemon to new api

Co-authored-by: Shaun Hamilton <shauhami020@gmail.com>
2023-03-02 18:17:44 +00:00
Sem Bauke
df53c7778c feat: integrate The Odin Project (#48617)
* feat: integrate the odin project

* feat: add assignment to markdown parser

* feat: add assignment logic

* fix: doe not always show assignment block

* fix: some other stuff

* fix: introdiction to html and css questions

* fix: remove assignments after first question

* fix: update snapshots and tests

* feat: create rest of HTML foundation course structure

* feat: meta file

* feat: add descriptions to 'html boiler plate' questions

* feat: add description for 'working with text and list items'

* fix: multiple logic issues

* fix: make linter happy

* feat: add description for 'links and images' questions

* fix: add assignments to Joi schema

* fix: tests

* fix: schema

* fix: add help category

* fix: change to possessive wording

* fix: set upcoming change to true in meta file

* fix: spell unordered and ordered correctly

* fix: switch order in meta

* fix: spell boilerplate correctly

* feat: add final project

* chore: add more tests to the final project

* fix: question spelling

* Apply suggestions from code review

Co-authored-by: Naomi Carrigan <nhcarrigan@gmail.com>

* Apply suggestions from code review

Co-authored-by: Naomi Carrigan <nhcarrigan@gmail.com>

* Apply suggestions from code review

Co-authored-by: Naomi Carrigan <nhcarrigan@gmail.com>

* Apply suggestions from code review

Co-authored-by: Naomi Carrigan <nhcarrigan@gmail.com>

* Apply suggestions from code review

Co-authored-by: Naomi Carrigan <nhcarrigan@gmail.com>

* Apply suggestions from code review

Co-authored-by: Naomi Carrigan <nhcarrigan@gmail.com>

* fix: translation

* Update client/i18n/locales/english/translations.json

Co-authored-by: Oliver Eyton-Williams <ojeytonwilliams@gmail.com>

* fix: create new challenge type

* fix: get the new challenge type working and remove ol css

* fix: translation location

* fix: add challenge type to epic

* fix: set correct video

* fix: max challengeType number

* fix: spelling/grammar errors in project

* fix: check if anchor tags is empty

* Apply suggestions from code review

Co-authored-by: Oliver Eyton-Williams <ojeytonwilliams@gmail.com>

* Update tools/challenge-parser/parser/plugins/add-video-question.js

Co-authored-by: Oliver Eyton-Williams <ojeytonwilliams@gmail.com>

* chore: multiple suggestions

* chore: separate assignments into different plugin

* Apply suggestions from code review

Co-authored-by: Kristofer Koishigawa <scissorsneedfoodtoo@gmail.com>

* fix: dubble answer header after review

* fix: issue with Gatsby hopefully

* fix: add assignments to Gatsby's Challenge schema

* Update curriculum/schema/challengeSchema.js

Co-authored-by: Oliver Eyton-Williams <ojeytonwilliams@gmail.com>

Co-authored-by: Naomi Carrigan <nhcarrigan@gmail.com>
Co-authored-by: Oliver Eyton-Williams <ojeytonwilliams@gmail.com>
Co-authored-by: Kristofer Koishigawa <scissorsneedfoodtoo@gmail.com>
2023-01-19 14:55:26 +02:00
Oliver Eyton-Williams
3c93f73b2d refactor: better error logging (#48903)
* refactor: log full error, not .message and .stack

* refactor: improve missing comments error message
2023-01-03 11:58:42 +00:00
Oliver Eyton-Williams
36363f277d test: enable tests for steps (#44550)
* fix: handle missing solutions correctly

Rather than creating an [[]] the parser now creates [] which isEmpty().
This makes the test suite check the next challenge for a solution.

In addition, the logic for testing solutions was fixed.

* chore: update snapshots

* test: build new superblock in node.js-tests CI

* test: allow forward slash in superblock slug

* fix: borked tests oops

* test: ignore duplicated projects

* fix: i did not break these shaun did :)

* fix: idIndex is index of id not id

Co-authored-by: Nicholas Carrigan <nhcarrigan@gmail.com>
2021-12-22 12:18:06 -08:00
Oliver Eyton-Williams
6ce8738fc0 refactor: remove useless warning (#44465) 2021-12-10 14:35:46 -08:00
Tom
1c5d136add feat(client): add notes tab to project based curriculum (#44247)
* feat: add notes tab to project based curriculum

* feat: add console key to i18n

* feat: add reset to i18n

* fix: use translations in action-row

* fix: use hasEditableBoundaries as check for when to display instructions/editor-tabs

* fix: clean up notes components and use prism formatting

* feat: add notes to docs/how-to-work-on-challenges

* revert: unused code

* fix: lint errors?

* fix: lint errors

* fix: add notes to graphql schema

* fix: add notes to challenge schema

* fix: only display notes on project based

* fix: add env data back to mobile layout

* fix: prettify

* revert: notes

* fix: hide notes on mobile for non project based

* rename: switchDisplayTab -> togglePane

* revert: hasEditableBoundaries check back to projectBasedChallenge check
2021-12-09 18:42:03 +00:00
Oliver Eyton-Williams
f613a1e5fd fix: index.css/js to styles/script (#44356)
* fix: replace index with script/styles as needed

* fix: remove redundant fileKey

It's overwritten by createPoly, so the parser does not need to create it

* fix: curriculum test suite

* Update client/src/templates/Challenges/classic/MultifileEditor.js

Co-authored-by: Shaun Hamilton <shauhami020@gmail.com>

Co-authored-by: Shaun Hamilton <shauhami020@gmail.com>
2021-12-03 12:32:29 -08:00
renovate[bot]
47aef5155b chore(deps): pin dependencies (#44358)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2021-12-02 20:48:15 +05:30
Oliver Eyton-Williams
bb0e7317c8 fix: only use parts of gfm parser 2021-12-02 19:57:47 +05:30
Oliver Eyton-Williams
03309bea9e chore: remove old package-locks 2021-12-02 19:57:47 +05:30
renovate[bot]
9dc35e4397 chore(deps): pin dependency @types/node to 16.11.7 (#44173)
* chore(deps): pin dependency @types/node to 16.11.7

* chore: install @types/node in tools

Co-authored-by: Renovate Bot <bot@renovateapp.com>
Co-authored-by: Oliver Eyton-Williams <ojeytonwilliams@gmail.com>
2021-11-15 15:26:55 +05:30
renovate[bot]
6feeaa289b fix(deps): update dependency @types/react-dom to v17.0.11 (#44107)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2021-11-10 20:17:39 +05:30
Mrugesh Mohapatra
466f39794b chore: update all lockfiles to v2 2021-11-03 15:06:19 +05:30
Mrugesh Mohapatra
6fef483946 chore: update all packages to node v16 & npm v8 2021-11-03 15:06:19 +05:30
Oliver Eyton-Williams
c8d7f0a782 feat(tools): remove eslint-plugin-prettier for prettier (#42438)
* feat: remove eslint-plugin-prettier for prettier

This removes the annoying lint warnings when all that needs to change is
formatting

* fix: use .js lint-staged config to ignore properly

* fix: lint everything if a lot of files are changed

It's faster than making lots of individual linter calls

* chore: apply prettier

* fix: ignore code in curriculum-file-structure
2021-10-06 21:02:21 +05:30
renovate[bot]
d23d09089e chore(deps): update dependency nth-check to 2.0.1 [security] (#43509)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2021-09-30 18:09:43 +02:00