utils.test.ts 3.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102
  1. import { getPosition } from "../utils";
  2. import { IExerciseItem } from "../types";
  3. const exercises: IExerciseItem[] = [
  4. { exercise: "exercise1", duration: 1, offset: 0 },
  5. { exercise: "exercise2", duration: 2, offset: 1 },
  6. { exercise: "exercise3", duration: 3, offset: 3 },
  7. { exercise: "exercise4", duration: 4, offset: 6 }
  8. ];
  9. describe("finds the right position in the exercise.", () => {
  10. it("can handle negative numbers.", () => {
  11. const result = getPosition(exercises, -10);
  12. expect(result).toEqual({
  13. previousExercise: null,
  14. currentExercise: exercises[0],
  15. nextExercise: exercises[1],
  16. exerciseTime: 0
  17. });
  18. });
  19. it("can find the low first exercise.", () => {
  20. const result = getPosition(exercises, 0);
  21. expect(result).toEqual({
  22. previousExercise: null,
  23. currentExercise: exercises[0],
  24. nextExercise: exercises[1],
  25. exerciseTime: 0
  26. });
  27. });
  28. it("can find the high first exercise.", () => {
  29. const result = getPosition(exercises, 0.99);
  30. expect(result).toEqual({
  31. previousExercise: null,
  32. currentExercise: exercises[0],
  33. nextExercise: exercises[1],
  34. exerciseTime: 0.99
  35. });
  36. });
  37. it("can find the low second exercise.", () => {
  38. const result = getPosition(exercises, 1);
  39. expect(result).toEqual({
  40. previousExercise: exercises[0],
  41. currentExercise: exercises[1],
  42. nextExercise: exercises[2],
  43. exerciseTime: 0
  44. });
  45. });
  46. it("can find the high second exercise.", () => {
  47. const result = getPosition(exercises, 2.99);
  48. expect(result).toEqual({
  49. previousExercise: exercises[0],
  50. currentExercise: exercises[1],
  51. nextExercise: exercises[2],
  52. exerciseTime: 2.99 - 1
  53. });
  54. });
  55. it("can find the low third exercise.", () => {
  56. const result = getPosition(exercises, 3);
  57. expect(result).toEqual({
  58. previousExercise: exercises[1],
  59. currentExercise: exercises[2],
  60. nextExercise: exercises[3],
  61. exerciseTime: 0
  62. });
  63. });
  64. it("can find the high third exercise.", () => {
  65. const result = getPosition(exercises, 5.99);
  66. expect(result).toEqual({
  67. previousExercise: exercises[1],
  68. currentExercise: exercises[2],
  69. nextExercise: exercises[3],
  70. exerciseTime: 5.99 - 3
  71. });
  72. });
  73. it("can find the low fourth exercise.", () => {
  74. const result = getPosition(exercises, 6);
  75. expect(result).toEqual({
  76. previousExercise: exercises[2],
  77. currentExercise: exercises[3],
  78. nextExercise: null,
  79. exerciseTime: 0
  80. });
  81. });
  82. it("can find the high fourth exercise.", () => {
  83. const result = getPosition(exercises, 9.99);
  84. expect(result).toEqual({
  85. previousExercise: exercises[2],
  86. currentExercise: exercises[3],
  87. nextExercise: null,
  88. exerciseTime: 9.99 - 6
  89. });
  90. });
  91. it("can find the fourth exercise.", () => {
  92. const result = getPosition(exercises, 10);
  93. expect(result).toEqual({
  94. previousExercise: null,
  95. currentExercise: null,
  96. nextExercise: null,
  97. exerciseTime: 0
  98. });
  99. });
  100. });