javascriptunit-testingjasminemomentjs

TypeError: moment().tz is not a function


When testing using jasmine, I am getting this error.

TypeError: moment().tz is not a function

My code that I try to test is:

let myDate = moment().tz(undefined, vm.timeZone).format('YYYY-MM-DD'); 

Solution

  • Fix

    If you're using Node.js, you may accidentally be using

    const moment = require('moment'); //moment

    instead of

    const moment = require('moment-timezone'); //moment-timezone

    Also, make sure you have installed moment-timezone with

    npm install moment-timezone --save

    Explanation

    The bug of requiring moment without timezones could occur by installing moment with require('moment'), later deciding to npm install moment-timezone, and then forgetting to update the require.