var jwt = require('../index');
var expect = require('chai').expect;
var JsonWebTokenError = require('../lib/JsonWebTokenError');

describe('non_object_values values', function() {

  it('should work with string', function () {
    var token = jwt.sign('hello', '123');
    var result = jwt.verify(token, '123');
    expect(result).to.equal('hello');
  });

  //v6 version will throw in this case:
  it.skip('should throw with expiresIn', function () {
    expect(function () {
      jwt.sign('hello', '123', { expiresIn: '12h' });
    }).to.throw(/invalid expiresIn option for string payload/);
  });

  it('should fail to validate audience when the payload is string', function () {
    var token = jwt.sign('hello', '123');
    expect(function () {
      jwt.verify(token, '123', { audience: 'foo' });
    }).to.throw(JsonWebTokenError);
  });

  it('should work with number', function () {
    var token = jwt.sign(123, '123');
    var result = jwt.verify(token, '123');
    expect(result).to.equal('123');
  });

});