Skip to content

Commit

Permalink
fix(battle): calculate current week in UTC
Browse files Browse the repository at this point in the history
  • Loading branch information
shrpne committed Nov 9, 2022
1 parent 8842a33 commit 243eeb2
Show file tree
Hide file tree
Showing 5 changed files with 41 additions and 2 deletions.
4 changes: 2 additions & 2 deletions api/portfolio.js
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import axios from 'axios';
import {cacheAdapterEnhancer, Cache} from 'axios-extensions';
import {differenceInCalendarISOWeeks} from 'date-fns';
import {differenceInCalendarUTCISOWeeks} from '~/assets/utils/date-fns.js';
import format from 'date-fns/esm/format';
import {PORTFOLIO_API_URL, NETWORK, MAINNET} from "~/assets/variables.js";
import {toSnake} from '~/assets/utils/snake-case.js';
Expand Down Expand Up @@ -315,7 +315,7 @@ export function getCmcCoinList() {
// monday of 43 ISO week
export const BATTLE_START_DATE = new Date('2022-10-24T00:00:00Z');
// week number starting from 1
export const BATTLE_CURRENT_WEEK_NUMBER = differenceInCalendarISOWeeks(new Date(), BATTLE_START_DATE) + 1;
export const BATTLE_CURRENT_WEEK_NUMBER = differenceInCalendarUTCISOWeeks(new Date(), BATTLE_START_DATE) + 1;


/**
Expand Down
13 changes: 13 additions & 0 deletions assets/utils/date-fns.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
import getUTCISOWeekSrc from 'date-fns/esm/_lib/getUTCISOWeek/index.js';

const getUTCISOWeek = getUTCISOWeekSrc.default || getUTCISOWeekSrc;
console.log(getUTCISOWeek);
/**
*
* @param {Date|number} dateLeft
* @param {Date|number} dateRight
* @return {number}
*/
export function differenceInCalendarUTCISOWeeks(dateLeft, dateRight) {
return getUTCISOWeek(dateLeft) - getUTCISOWeek(dateRight);
}
10 changes: 10 additions & 0 deletions jest-babel.config.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
// Custom Jest transform implementation that wraps babel-jest and injects our
// babel presets, so we don't have to use .babelrc.

import babelJest from 'babel-jest';
const createTransformer = babelJest.createTransformer || babelJest.default.createTransformer;
export default createTransformer({
babelrc: false,
"presets": ["@babel/preset-env"],
// ignore: false, // do nothing, jest's transformIgnorePatterns works instead
});
6 changes: 6 additions & 0 deletions jest.config.js
Original file line number Diff line number Diff line change
@@ -1,7 +1,13 @@
const esModules = ['date-fns'].join('|');

export default {
moduleNameMapper: {
'~(.*)$': '<rootDir>/$1',
},
transform: {
'^.+\\.jsx?$': '<rootDir>/jest-babel.config.js',
},
transformIgnorePatterns: [`/node_modules/(?!${esModules})`],
// testEnvironment: 'node',
// collectCoverage: true,
// collectCoverageFrom: ["./src/**"],
Expand Down
10 changes: 10 additions & 0 deletions tests/date-fns.test.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
import {differenceInCalendarUTCISOWeeks} from '~/assets/utils/date-fns.js';

test('differenceInCalendarUTCISOWeeks', () => {
const BATTLE_START_DATE = new Date('2022-10-24T00:00:00Z');
const now = new Date("2022-11-07T01:20:44.498+03:00");
expect(differenceInCalendarUTCISOWeeks(new Date("2022-11-07T01:20:44.498+03:00"), BATTLE_START_DATE))
.toBe(1);
expect(differenceInCalendarUTCISOWeeks(new Date("2022-11-07T01:20:44.498Z"), BATTLE_START_DATE))
.toBe(2);
});

0 comments on commit 243eeb2

Please sign in to comment.