-
Notifications
You must be signed in to change notification settings - Fork 113
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
Chore: Refactor filmstripShowHandler for testability #33
Conversation
The filmstripShowHandler method had a lot of calculations being done, and edge-cases to consider, so it would benefit from having more unit-tests. However it was previously a mixture of computations plus side-effects, and reading of hard-to-stub elements. Pulling out the computations to unit test them separately.
if (!filmstripWidth) { | ||
left = 0; | ||
top = 0; | ||
frameWidth = 160; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Maybe move this too constant too?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
If the place-holder is literally 160x90, I wouldn't want to make this seem variable, would rather leave it hard-coded
let top = -FILMSTRIP_FRAME_HEIGHT * Math.floor((frame / FILMSTRIP_FRAMES_PER_ROW)); // get the row number if there is more than 1 row. | ||
|
||
// If the filmstrip is not ready yet, we are using a placeholder | ||
// which has a fixed dimension of 160 x 90 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
x FILMSTRIP_FRAME_HEIGHT
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
See my comment above.
https://github.com/box/box-annotations/releases # 0.3.0 (2017-11-14) * Chore: Add conventional-changelog-releaser (box#34) ([624e0bd](box/box-annotations@624e0bd)) * Chore: Do not clear out node_modules on when publishing npm package (box#30) ([08c180d](box/box-annotations@08c180d)) * Fix: Do not select drawings when creating a point annotation on top (box#28) ([07fc4c1](box/box-annotations@07fc4c1)) * Fix: Drawing CSS (box#23) ([0493fcd](box/box-annotations@0493fcd)) * Fix: fix highlight selection and typos (box#21) ([ca54d5e](box/box-annotations@ca54d5e)), closes [box#21](box/box-annotations#21) * Fix: Hide createHighlightDialog on page re-render (box#31) ([0b74717](box/box-annotations@0b74717)) * Fix: Match width of reply textarea with comments (box#33) ([5f0f29b](box/box-annotations@5f0f29b)) * Fix: Only registering thread with controller on save (box#22) ([ff75bf1](box/box-annotations@ff75bf1)) * Fix: Only show create dialog when creating new point annotations (box#29) ([4822ece](box/box-annotations@4822ece)) * Fix: only show newly created annotation dialog on hover (box#25) ([0ba1965](box/box-annotations@0ba1965)) * Fix: Position create dialog properly near page edges (box#32) ([968efb3](box/box-annotations@968efb3)) * Fix: release script should use correct remote branch (box#20) ([8bd12a5](box/box-annotations@8bd12a5)) * Fix: Scrolling on highlight dialogs in powerpoints (box#24) ([b21ed0e](box/box-annotations@b21ed0e)) * Fix: Validation message fails to get displayed when user clicks on 'Post' without entering any comme ([d90e72c](box/box-annotations@d90e72c)) * Fix: Hide mobile dialog on first outside click (box#26) ([01ec48b](box/box-annotations@01ec48b))
https://github.com/box/box-annotations/releases # 0.3.0 (2017-11-14) * Chore: Add conventional-changelog-releaser (#34) ([624e0bd](box/box-annotations@624e0bd)) * Chore: Do not clear out node_modules on when publishing npm package (#30) ([08c180d](box/box-annotations@08c180d)) * Fix: Do not select drawings when creating a point annotation on top (#28) ([07fc4c1](box/box-annotations@07fc4c1)) * Fix: Drawing CSS (#23) ([0493fcd](box/box-annotations@0493fcd)) * Fix: fix highlight selection and typos (#21) ([ca54d5e](box/box-annotations@ca54d5e)), closes [#21](box/box-annotations#21) * Fix: Hide createHighlightDialog on page re-render (#31) ([0b74717](box/box-annotations@0b74717)) * Fix: Match width of reply textarea with comments (#33) ([5f0f29b](box/box-annotations@5f0f29b)) * Fix: Only registering thread with controller on save (#22) ([ff75bf1](box/box-annotations@ff75bf1)) * Fix: Only show create dialog when creating new point annotations (#29) ([4822ece](box/box-annotations@4822ece)) * Fix: only show newly created annotation dialog on hover (#25) ([0ba1965](box/box-annotations@0ba1965)) * Fix: Position create dialog properly near page edges (#32) ([968efb3](box/box-annotations@968efb3)) * Fix: release script should use correct remote branch (#20) ([8bd12a5](box/box-annotations@8bd12a5)) * Fix: Scrolling on highlight dialogs in powerpoints (#24) ([b21ed0e](box/box-annotations@b21ed0e)) * Fix: Validation message fails to get displayed when user clicks on 'Post' without entering any comme ([d90e72c](box/box-annotations@d90e72c)) * Fix: Hide mobile dialog on first outside click (#26) ([01ec48b](box/box-annotations@01ec48b))
https://github.com/box/box-annotations/releases # 0.3.0 (2017-11-14) * Chore: Add conventional-changelog-releaser (box#34) ([624e0bd](box/box-annotations@624e0bd)) * Chore: Do not clear out node_modules on when publishing npm package (box#30) ([08c180d](box/box-annotations@08c180d)) * Fix: Do not select drawings when creating a point annotation on top (box#28) ([07fc4c1](box/box-annotations@07fc4c1)) * Fix: Drawing CSS (box#23) ([0493fcd](box/box-annotations@0493fcd)) * Fix: fix highlight selection and typos (box#21) ([ca54d5e](box/box-annotations@ca54d5e)), closes [box#21](box/box-annotations#21) * Fix: Hide createHighlightDialog on page re-render (box#31) ([0b74717](box/box-annotations@0b74717)) * Fix: Match width of reply textarea with comments (box#33) ([5f0f29b](box/box-annotations@5f0f29b)) * Fix: Only registering thread with controller on save (box#22) ([ff75bf1](box/box-annotations@ff75bf1)) * Fix: Only show create dialog when creating new point annotations (box#29) ([4822ece](box/box-annotations@4822ece)) * Fix: only show newly created annotation dialog on hover (box#25) ([0ba1965](box/box-annotations@0ba1965)) * Fix: Position create dialog properly near page edges (box#32) ([968efb3](box/box-annotations@968efb3)) * Fix: release script should use correct remote branch (box#20) ([8bd12a5](box/box-annotations@8bd12a5)) * Fix: Scrolling on highlight dialogs in powerpoints (box#24) ([b21ed0e](box/box-annotations@b21ed0e)) * Fix: Validation message fails to get displayed when user clicks on 'Post' without entering any comme ([d90e72c](box/box-annotations@d90e72c)) * Fix: Hide mobile dialog on first outside click (box#26) ([01ec48b](box/box-annotations@01ec48b))
The filmstripShowHandler method had a lot of calculations being done,
and edge-cases to consider, so it would benefit from having more
unit-tests. However it was previously a mixture of computations plus
side-effects, and reading of hard-to-stub elements. Pulling out the
computations to unit test them separately.