Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Interactive Graph: Extract validation out of scoring #1903

Draft
wants to merge 6 commits into
base: main
Choose a base branch
from

Conversation

Myranae
Copy link
Contributor

@Myranae Myranae commented Nov 21, 2024

Summary:

To complete server-side scoring, we are separating out validation logic from scoring logic. This PR separates that logic and associated tests for the Interactive Graph widget.

Issue: LEMS-2595

Test plan:

  • Confirm checks pass
  • Confirm widget still works as expected
  • Confirm validation check location works

@Myranae Myranae self-assigned this Nov 21, 2024
Copy link
Contributor

npm Snapshot: Published

Good news!! We've packaged up the latest commit from this PR (77776ee) and published it to npm. You
can install it using the tag PR1903.

Example:

yarn add @khanacademy/perseus@PR1903

If you are working in Khan Academy's webapp, you can run:

./dev/tools/bump_perseus_version.sh -t PR1903

Copy link
Contributor

Size Change: +129 B (+0.01%)

Total Size: 1.29 MB

Filename Size Change
packages/perseus/dist/es/index.js 425 kB +129 B (+0.03%)
ℹ️ View Unchanged
Filename Size
packages/kas/dist/es/index.js 39 kB
packages/keypad-context/dist/es/index.js 760 B
packages/kmath/dist/es/index.js 4.27 kB
packages/math-input/dist/es/index.js 77.9 kB
packages/math-input/dist/es/strings.js 1.79 kB
packages/perseus-core/dist/es/index.js 1.48 kB
packages/perseus-editor/dist/es/index.js 698 kB
packages/perseus-linter/dist/es/index.js 22.2 kB
packages/perseus/dist/es/strings.js 3.57 kB
packages/pure-markdown/dist/es/index.js 3.66 kB
packages/simple-markdown/dist/es/index.js 12.5 kB

compressed-size-action

Comment on lines +284 to +288
// The input wasn't correct, so check if it's a blank input (validate) or if
// it's actually just wrong
const validationError = validateInteractiveGraph(userInput, scoringData);
if (validationError) {
return validationError;
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The validation function was put here since this is the only place where validation occurs. It seems like it should be okay to check if the user input is blank or if the user hasn't changed the graph yet at the start of scoring, but since that's not what was done and there is a comment specifically about doing this after confirming the input was not correct, I left it here.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant