pillarjs/cookies

Cookie set to '' when pass the value as 0

Open

#101 opened on Aug 22, 2018

View on GitHub
 (3 comments) (0 reactions) (0 assignees)JavaScript (152 forks)batch import
bughelp wanted

Repository metrics

Stars
 (1,261 stars)
PR merge metrics
 (No merged PRs in 30d)

Description

When I want to record the user visit time in the header, I found the 0 value cannot set to cookie only if we convert it to string type, but other number type value can be saved. I create one test to reproduce the issue:

it('when set value to 0', () => {
      var cookie = new cookies.Cookie('foo', 0 );
      assert.equal(cookie.toHeader(), 'foo=0; path=/; httponly')
 }) //this will faile

it('when set value to 1', () => {
        var cookie = new cookies.Cookie('foo', 1 );
        assert.equal(cookie.toHeader(), 'foo=1; path=/; httponly')
}) //this will pass

And I check the source code found this issue happens because of the index.js L:131

  this.value = value || ""

This will convert the 0 to empty string, so I am woundering is this a bug or not, if not, I think we should notice the user we should always put he String type value.

Contributor guide