From 3cb803c03092adfd8a9666f733054584a7249cc1 Mon Sep 17 00:00:00 2001 From: Wes Johnson Date: Mon, 29 Jan 2024 16:14:08 -0500 Subject: [PATCH] fix issue with overriding dates from spec --- .github/workflows/test.yml | 2 +- bun.lockb | Bin 248829 -> 248485 bytes package.json | 3 +- .../__snapshots__/timeline.test.ts.snap | 94 +++++++++--------- site/src/lib/server/timeline.test.ts | 9 +- site/src/lib/server/timeline.ts | 17 +--- 6 files changed, 55 insertions(+), 70 deletions(-) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 1a4abef..018cc94 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -26,4 +26,4 @@ jobs: - name: setup data fixture run: mkdir -p site/src/generated && cp site/src/lib/server/__fixtures__/data.json site/src/generated/data.json - name: run unit tests - run: TZ=America/New_York bun run test + run: bun run test diff --git a/bun.lockb b/bun.lockb index e5e1d05150d9602f17a0f28614dec02b0e7c2cb7..32a1f4c188524952d748910b8d796f1e5f88ccaa 100755 GIT binary patch delta 39154 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 diff --git a/package.json b/package.json index ce3109e..e7d8c8c 100644 --- a/package.json +++ b/package.json @@ -11,7 +11,7 @@ "start": "bun run dev", "build": "cd site && bun run build", "preview": "cd site && bun run preview", - "test": "vitest" + "test": "TZ=America/New_York vitest" }, "devDependencies": { "@types/bun": "latest" @@ -22,7 +22,6 @@ "dependencies": { "d3-node": "^3.0.0", "date-fns": "^3.3.0", - "mockdate": "^3.0.5", "point-at-length": "^1.1.0", "reading-time": "^1.5.0", "vitest": "^1.2.1" diff --git a/site/src/lib/server/__snapshots__/timeline.test.ts.snap b/site/src/lib/server/__snapshots__/timeline.test.ts.snap index 66f22d6..9154067 100644 --- a/site/src/lib/server/__snapshots__/timeline.test.ts.snap +++ b/site/src/lib/server/__snapshots__/timeline.test.ts.snap @@ -3,7 +3,7 @@ exports[`timeline datamodel integration 1`] = ` { "clipPathTimes": "0;0.17444717444717445;0.18673218673218672;0.2457002457002457;0.257985257985258;0.32186732186732187;0.33415233415233414;0.40786240786240785;0.4201474201474201;0.5724815724815725;0.5847665847665847;0.6240786240786241;0.6363636363636364;0.7297297297297297;0.742014742014742;0.7764127764127764;0.7886977886977887;0.7985257985257985;0.8108108108108109;0.85995085995086;0.8722358722358723;0.9754299754299754;0.9877149877149877;1", - "clipPathValues": "7.265483521194563;7.265483521194563;7.461064832333399;7.461064832333399;11.438448228443644;11.438448228443644;17.9451889430103;17.9451889430103;21.47048171168563;21.47048171168563;54.04805022878668;54.04805022878668;87.25522154686861;87.25522154686861;98.99424525121678;98.99424525121678;99.15489557921396;99.15489557921396;112.77314983628851;112.77314983628851;248.1516359056855;248.1516359056855;400;400", + "clipPathValues": "9.714285715592453;9.714285715592453;9.975786926281383;9.975786926281383;15.293731505958267;15.293731505958267;23.9935431832114;23.9935431832114;28.70702179562914;28.70702179562914;72.26472963038266;72.26472963038266;116.66424537485395;116.66424537485395;132.35986012003764;132.35986012003764;132.5746569992702;132.5746569992702;150.78288944724008;150.78288944724008;331.7901533941068;331.7901533941068;400;400", "dayTexts": [ { "dayAnimId": "dayanim00", @@ -714,7 +714,7 @@ exports[`timeline datamodel integration 1`] = ` "2023-10-08", "2023-10-09", ], - "distance": 7.265483521194563, + "distance": 9.714285715592453, "distanceBefore": 0, "killedCounts": [ 198, @@ -722,8 +722,8 @@ exports[`timeline datamodel integration 1`] = ` 436, ], "markerPoint": [ - 8.02081070783249, - 230.32111889351592, + 10.280012348794722, + 228.45156922019999, ], "markerTooltip": "October 9th 2023", "postTime": 1696831740000, @@ -734,12 +734,12 @@ exports[`timeline datamodel integration 1`] = ` }, { "dates": [], - "distance": 0.1955813111388367, - "distanceBefore": 7.265483521194563, + "distance": 0.2615012106889294, + "distanceBefore": 9.714285715592453, "killedCounts": [], "markerPoint": [ - 8.201248972743082, - 230.17180141202113, + 10.521266610022343, + 228.2519248781075, ], "markerTooltip": "October 9th 2023", "postTime": 1696836600000, @@ -752,14 +752,14 @@ exports[`timeline datamodel integration 1`] = ` "dates": [ "2023-10-10", ], - "distance": 3.9773833961102443, - "distanceBefore": 7.461064832333399, + "distance": 5.317944579676882, + "distanceBefore": 9.975786926281383, "killedCounts": [ 765, ], "markerPoint": [ - 11.936285096730685, - 227.21964873848097, + 15.927934376493553, + 224.98591547475183, ], "markerTooltip": "October 10th 2023", "postTime": 1696935434000, @@ -773,15 +773,15 @@ exports[`timeline datamodel integration 1`] = ` "2023-10-11", "2023-10-12", ], - "distance": 6.506740714566657, - "distanceBefore": 11.438448228443644, + "distance": 8.699811677253136, + "distanceBefore": 15.293731505958267, "killedCounts": [ 1055, 1203, ], "markerPoint": [ - 18.43804653833968, - 223.24053780270765, + 22.912860684430314, + 217.5453029834417, ], "markerTooltip": "October 12th 2023", "postTime": 1697097120000, @@ -794,14 +794,14 @@ exports[`timeline datamodel integration 1`] = ` "dates": [ "2023-10-13", ], - "distance": 3.525292768675328, - "distanceBefore": 17.9451889430103, + "distance": 4.71347861241774, + "distanceBefore": 23.9935431832114, "killedCounts": [ 1709, ], "markerPoint": [ - 21.04619899170109, - 219.92106124314708, + 27.126907894039554, + 213.9368230442184, ], "markerTooltip": "October 13th 2023", "postTime": 1697184720000, @@ -822,8 +822,8 @@ exports[`timeline datamodel integration 1`] = ` "2023-10-21", "2023-10-22", ], - "distance": 32.57756851710105, - "distanceBefore": 21.47048171168563, + "distance": 43.55770783475352, + "distanceBefore": 28.70702179562914, "killedCounts": [ 2215, 2450, @@ -836,8 +836,8 @@ exports[`timeline datamodel integration 1`] = ` 4651, ], "markerPoint": [ - 50.708178983296904, - 195.24142581204012, + 62.97501855083281, + 177.5525941442425, ], "markerTooltip": "October 22nd 2023", "postTime": 1697994240000, @@ -859,8 +859,8 @@ exports[`timeline datamodel integration 1`] = ` "2023-10-31", "2023-11-01", ], - "distance": 33.20717131808193, - "distanceBefore": 54.04805022878668, + "distance": 44.39951574447129, + "distanceBefore": 72.26472963038266, "killedCounts": [ 5087, 5791, @@ -874,8 +874,8 @@ exports[`timeline datamodel integration 1`] = ` 8805, ], "markerPoint": [ - 75.94966045375378, - 165.300391058581, + 105.6632984895152, + 146.53557344575486, ], "markerTooltip": "November 1st 2023", "postTime": 1698819405000, @@ -890,16 +890,16 @@ exports[`timeline datamodel integration 1`] = ` "2023-11-03", "2023-11-04", ], - "distance": 11.739023704348165, - "distanceBefore": 87.25522154686861, + "distance": 15.695614745183697, + "distanceBefore": 116.66424537485395, "killedCounts": [ 9061, 9257, 9488, ], "markerPoint": [ - 87.55456264293207, - 157.41296591929697, + 121.5793210856571, + 136.9869378796796, ], "markerTooltip": "November 4th 2023", "postTime": 1699111108000, @@ -910,12 +910,12 @@ exports[`timeline datamodel integration 1`] = ` }, { "dates": [], - "distance": 0.16065032799716794, - "distanceBefore": 98.99424525121678, + "distance": 0.21479687923255272, + "distanceBefore": 132.35986012003764, "killedCounts": [], "markerPoint": [ - 87.71254644975649, - 157.30322852798625, + 121.83444977154596, + 136.95421017224908, ], "markerTooltip": "November 4th 2023", "postTime": 1699115100000, @@ -931,8 +931,8 @@ exports[`timeline datamodel integration 1`] = ` "2023-11-07", "2023-11-08", ], - "distance": 13.618254257074556, - "distanceBefore": 99.15489557921396, + "distance": 18.2082324479699, + "distanceBefore": 132.5746569992702, "killedCounts": [ 9770, 10000, @@ -940,8 +940,8 @@ exports[`timeline datamodel integration 1`] = ` 10569, ], "markerPoint": [ - 101.63469419044512, - 148.86451235354727, + 141.02032101551592, + 129.132222097083, ], "markerTooltip": "November 8th 2023", "postTime": 1699453500000, @@ -992,8 +992,8 @@ exports[`timeline datamodel integration 1`] = ` "2023-12-16", "2023-12-17", ], - "distance": 135.37848606939698, - "distanceBefore": 112.77314983628851, + "distance": 181.00726394686671, + "distanceBefore": 150.78288944724008, "killedCounts": [ 10818, 11078, @@ -1036,8 +1036,8 @@ exports[`timeline datamodel integration 1`] = ` 19235, ], "markerPoint": [ - 233.940753364097, - 71.42951814923794, + 325.3320740188269, + 31.97865096096632, ], "markerTooltip": "December 17th 2023", "postTime": 1702817520000, @@ -1063,8 +1063,8 @@ exports[`timeline datamodel integration 1`] = ` "2023-12-30", "2023-12-31", ], - "distance": 151.8483640943145, - "distanceBefore": 248.1516359056855, + "distance": 68.20984660589318, + "distanceBefore": 331.7901533941068, "killedCounts": [ 19453, 19667, @@ -1088,7 +1088,7 @@ exports[`timeline datamodel integration 1`] = ` ], }, ], - "totalDistance": 248.1516359056855, + "totalDistance": 331.7901533941068, }, "postDelayLookup": { "0": 40200, diff --git a/site/src/lib/server/timeline.test.ts b/site/src/lib/server/timeline.test.ts index f838fb7..994cc89 100644 --- a/site/src/lib/server/timeline.test.ts +++ b/site/src/lib/server/timeline.test.ts @@ -1,17 +1,10 @@ -import MockDate from "mockdate"; -import { afterAll, beforeAll, expect, test } from "vitest"; +import { expect, test } from "vitest"; import { getTimeline } from "./timeline"; import { getSvgDomain } from "./svg"; import { getEnhancedPosts } from "./posts"; import dataFixture from "./__fixtures__/data.json"; test("timeline datamodel integration", () => { - beforeAll(() => { - MockDate.set(new Date(2023, 12, 31, 23, 0, 0, 0)); - }); - - afterAll(() => MockDate.reset()); - const posts = getEnhancedPosts( require("../../content/enabler/talbroda.json").posts ); diff --git a/site/src/lib/server/timeline.ts b/site/src/lib/server/timeline.ts index 5819ed8..f0f6be5 100644 --- a/site/src/lib/server/timeline.ts +++ b/site/src/lib/server/timeline.ts @@ -10,8 +10,10 @@ const getData = () => { const getTimelineBounds = (dataFetcher = getData) => { const { dates } = dataFetcher(); - const firstDate = startOfDay(parseISO(dates[0])); - const lastDate = endOfDay(parseISO(dates[dates.length - 1])); + const headDate = dates[0]; + const tailDate = dates[dates.length - 1]; + const firstDate = startOfDay(parseISO(headDate)); + const lastDate = endOfDay(parseISO(tailDate)); const firstDateVal = firstDate.valueOf(); const lastDateVal = lastDate.valueOf(); const realTimeDuration = lastDateVal - firstDateVal; @@ -47,7 +49,7 @@ export const getTimeline = ({ svgDomain: ReturnType; dataFetcher?: typeof getData; }) => { - const { firstDateVal, realTimeDuration } = getTimelineBounds(); + const { firstDateVal, realTimeDuration } = getTimelineBounds(dataFetcher); const { dates, killed } = dataFetcher ? dataFetcher() : getData(); const postDates = posts.map((post) => post.dateValue).sort(); const allDates = dates.map((date) => parseISO(date).valueOf()); @@ -104,8 +106,6 @@ export const getTimeline = ({ {} ); - console.log("svgDomain: ", svgDomain); - const graphConfig = sortedMarkerTimes.reduce( (acc, postTime, postIndex) => { const currentTimeInterval = acc.lastPostTime @@ -114,13 +114,6 @@ export const getTimeline = ({ const distance = (currentTimeInterval / realTimeDuration) * svgDomain.svgViewbox.width; - console.log({ - postTime, - firstDateVal, - distance, - currentTimeInterval, - realTimeDuration, - }); const distanceBefore = acc.totalDistance;