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

Fix the two most common LessonsServer errors and add tests. #6707

Merged
merged 2 commits into from
Sep 9, 2020

Conversation

dandrabik
Copy link
Member

WHAT

Add a few tests to LessonsServer. Fix the two most frequently occurring nil errors.
https://sentry.io/organizations/quillorg-5s/issues/1723648326/?project=1876481&query=is%3Aunresolved
https://sentry.io/organizations/quillorg-5s/issues/1722612569/?project=1876481&query=is%3Aunresolved

WHY

Basically, this code section would error any time a session wasn't in RethinkDB yet. Adding tests to confirm my fix works.

HOW

Setup jest (a version that works with this node version). I made a smaller function that was more easily testable, and focused on that.

A few notes

  1. Testing the raised error that occurs in the rejected Promise gave me difficulty (there are jest issues for this), since it only throws a UnhandledPromiseRejectionWarning: warning, but swallows the error. I tried some of the workarounds with no success, then moved on.
  2. I'm exporting the "private function" since using rewire and other test exposure methods for non-exported methods weren't working. I don't love this, but I'd rather have the tests than not. Open to other

Screenshots

(If applicable. Also, please censor any sensitive data)

PR Checklist Your Answer
Have you added and/or updated tests? (YES.)
Have you deployed to Staging? (Not yet - deploying now!)
Self-Review: Have you done an initial self-review of the code below on Github? Yes
Design Review: If applicable, have you compared the coded design to the mockups? (N/A)

Copy link
Member

@emilia-friedberg emilia-friedberg left a comment

Choose a reason for hiding this comment

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

LGTM. I feel like this could help a lot - excited for when it goes live.

@dandrabik dandrabik temporarily deployed to lessons-server-staging September 9, 2020 13:32 Inactive
@dandrabik dandrabik merged commit f0c5c12 into develop Sep 9, 2020
@delete-merged-branch delete-merged-branch bot deleted the lessons_nil branch September 9, 2020 13:40
emilia-friedberg added a commit that referenced this pull request Sep 9, 2020
* Remove references to prefilledText in all LMS apps (#6693)

* remove prefill question

* new test snapshot

* Remove leftover unused write to Firebase (#6695)

* try committing everything but yarn lock

* put expose loader back because it turns out we do need that

* minor c hange so I can deploy again

* Add a "last_active" trait to Schools when syncing Vitally

This trait is calculated by the last time a student completed an activity assigned by a teacher at this school

* Remove an extraneous leftover line

* dumb

* add check for empty questions array (#6694)

* Fix some caching issues in the CMS (#6697)

* Fix some caching issues in the CMS

* Break out of module to ensure Response called.

* Be more specific with our `maximum` call to disambiguate

* remove commented out loaders

* Add analytics.group calls if current_user.school exists

* Tweak tests to account for in-memory vs in-db time precision

* Fix the two most common LessonsServer errors and add tests. (#6707)

* Install jest.

* Add tests for createSession

* Fix error with teacher_ids (#6710)

Co-authored-by: cissyxyu <57366100+cissyxyu@users.noreply.github.com>
Co-authored-by: Anathomical <thomas.robertson@quill.org>
Co-authored-by: Eric Adams <erictayloradams@gmail.com>
Co-authored-by: dandrabik <dandrabik@users.noreply.github.com>
emilia-friedberg added a commit that referenced this pull request Sep 9, 2020
* Remove references to prefilledText in all LMS apps (#6693)

* remove prefill question

* new test snapshot

* Remove leftover unused write to Firebase (#6695)

* try committing everything but yarn lock

* put expose loader back because it turns out we do need that

* minor c hange so I can deploy again

* Add a "last_active" trait to Schools when syncing Vitally

This trait is calculated by the last time a student completed an activity assigned by a teacher at this school

* Remove an extraneous leftover line

* dumb

* add check for empty questions array (#6694)

* Fix some caching issues in the CMS (#6697)

* Fix some caching issues in the CMS

* Break out of module to ensure Response called.

* Be more specific with our `maximum` call to disambiguate

* remove commented out loaders

* Add analytics.group calls if current_user.school exists

* Tweak tests to account for in-memory vs in-db time precision

* bunch of clean up in the webpack files

* run terser plugin in parallel

* start using the cache-loader for jsx and tsx files

* tiny change to deploy again

* get rid of cache-loader

* Fix the two most common LessonsServer errors and add tests. (#6707)

* Install jest.

* Add tests for createSession

* just remove sass-loader from evaluating .css files

* Fix error with teacher_ids (#6710)

* add the hard source webpack plugin

* re-install terser webpack plugin

* whitespace change to redeploy

* get rid of stuff that really isn't helping

Co-authored-by: cissyxyu <57366100+cissyxyu@users.noreply.github.com>
Co-authored-by: Anathomical <thomas.robertson@quill.org>
Co-authored-by: Eric Adams <erictayloradams@gmail.com>
Co-authored-by: dandrabik <dandrabik@users.noreply.github.com>
emilia-friedberg added a commit that referenced this pull request Sep 9, 2020
* try committing changes

* fix memory issue

* memory update for prod-cms call

* additional speed improvements for webpack (#6702)

* Remove references to prefilledText in all LMS apps (#6693)

* remove prefill question

* new test snapshot

* Remove leftover unused write to Firebase (#6695)

* try committing everything but yarn lock

* put expose loader back because it turns out we do need that

* minor c hange so I can deploy again

* Add a "last_active" trait to Schools when syncing Vitally

This trait is calculated by the last time a student completed an activity assigned by a teacher at this school

* Remove an extraneous leftover line

* dumb

* add check for empty questions array (#6694)

* Fix some caching issues in the CMS (#6697)

* Fix some caching issues in the CMS

* Break out of module to ensure Response called.

* Be more specific with our `maximum` call to disambiguate

* remove commented out loaders

* Add analytics.group calls if current_user.school exists

* Tweak tests to account for in-memory vs in-db time precision

* Fix the two most common LessonsServer errors and add tests. (#6707)

* Install jest.

* Add tests for createSession

* Fix error with teacher_ids (#6710)

Co-authored-by: cissyxyu <57366100+cissyxyu@users.noreply.github.com>
Co-authored-by: Anathomical <thomas.robertson@quill.org>
Co-authored-by: Eric Adams <erictayloradams@gmail.com>
Co-authored-by: dandrabik <dandrabik@users.noreply.github.com>

* final round of improvements to our current prod webpack build (#6713)

* Remove references to prefilledText in all LMS apps (#6693)

* remove prefill question

* new test snapshot

* Remove leftover unused write to Firebase (#6695)

* try committing everything but yarn lock

* put expose loader back because it turns out we do need that

* minor c hange so I can deploy again

* Add a "last_active" trait to Schools when syncing Vitally

This trait is calculated by the last time a student completed an activity assigned by a teacher at this school

* Remove an extraneous leftover line

* dumb

* add check for empty questions array (#6694)

* Fix some caching issues in the CMS (#6697)

* Fix some caching issues in the CMS

* Break out of module to ensure Response called.

* Be more specific with our `maximum` call to disambiguate

* remove commented out loaders

* Add analytics.group calls if current_user.school exists

* Tweak tests to account for in-memory vs in-db time precision

* bunch of clean up in the webpack files

* run terser plugin in parallel

* start using the cache-loader for jsx and tsx files

* tiny change to deploy again

* get rid of cache-loader

* Fix the two most common LessonsServer errors and add tests. (#6707)

* Install jest.

* Add tests for createSession

* just remove sass-loader from evaluating .css files

* Fix error with teacher_ids (#6710)

* add the hard source webpack plugin

* re-install terser webpack plugin

* whitespace change to redeploy

* get rid of stuff that really isn't helping

Co-authored-by: cissyxyu <57366100+cissyxyu@users.noreply.github.com>
Co-authored-by: Anathomical <thomas.robertson@quill.org>
Co-authored-by: Eric Adams <erictayloradams@gmail.com>
Co-authored-by: dandrabik <dandrabik@users.noreply.github.com>

Co-authored-by: cissyxyu <57366100+cissyxyu@users.noreply.github.com>
Co-authored-by: Anathomical <thomas.robertson@quill.org>
Co-authored-by: Eric Adams <erictayloradams@gmail.com>
Co-authored-by: dandrabik <dandrabik@users.noreply.github.com>
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.

2 participants