Skip to content
This repository has been archived by the owner on Jan 5, 2023. It is now read-only.

Issue while setting up new Date() #18

Open
soultrue opened this issue Apr 14, 2020 · 6 comments
Open

Issue while setting up new Date() #18

soultrue opened this issue Apr 14, 2020 · 6 comments

Comments

@soultrue
Copy link

Hi,

I am trying to mock new Date() but it is not working for me. It is giving below error:
Type 'typeof Date' is not assignable to type 'DateConstructor'.

I tried with your below code:
const getCurrentDate = () => new Date();
let realDate;


Using below code in my test spec:

realDate = Date;
global.Date = class extends Date {
constructor(...args) {
if (args.length > 0) {
// eslint-disable-next-line constructor-super, no-constructor-return
return super(...args);
}

    // eslint-disable-next-line no-constructor-return
    return currentDate;
  }
};

My requirement is, I am passing "new Date" in my method and getting back date/time with timezone offset like below:
const deliveryDate = abc.getDeliveryDate(new Date());
deliveryDate = "2020-04-14T15:20:33.982-05:00"

I would like to fix or hard code new Date() so that I get same date and time(with offset) every time.

@HugoDF
Copy link
Owner

HugoDF commented Apr 14, 2020

@soultrue could you try using a regular function (instead of arrow)?

@soultrue
Copy link
Author

soultrue commented Apr 14, 2020

@soultrue could you try using a regular function (instead of arrow)?

You mean like that:
const getCurrentDate = function () { return new Date() };
};
?

I tired above code but no luck, same error:
Type 'typeof Date' is not assignable to type 'DateConstructor'.

@HugoDF
Copy link
Owner

HugoDF commented Apr 14, 2020

Wait is this a TypeScript issue?

@soultrue
Copy link
Author

Yes

@HugoDF
Copy link
Owner

HugoDF commented Apr 14, 2020

const getCurrentDate = (function () { return new Date() };
} as any);

@soultrue
Copy link
Author

No luck :(

Same error:
Type 'typeof Date' is not assignable to type 'DateConstructor'.

Just to clarify, we are getting this error for "global.Date" in below code snippet.

global.Date = class extends Date { // getting error in this line Type 'typeof Date' is not assignable to type 'DateConstructor'.
constructor(...args) {
if (args.length > 0) {
return super(...args); // Also getting error in this line - Type 'void' is not assignable to type 'Date'.ts

   }
};

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants