set.js 1.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768
  1. var request = require("request");
  2. var qs = require("querystring");
  3. var uuid = require("uuid");
  4. var should = require("should");
  5. var sinon = require("sinon");
  6. var url = require("url");
  7. var ua = require("../lib/index.js");
  8. var utils = require("../lib/utils.js")
  9. var config = require("../lib/config.js")
  10. describe("ua", function () {
  11. describe("#set", function () {
  12. var _enqueue;
  13. beforeEach(function () {
  14. _enqueue = sinon.stub(ua.Visitor.prototype, "_enqueue", function () {
  15. if (arguments.length === 3 && typeof arguments[2] === 'function') {
  16. arguments[2]();
  17. }
  18. return this;
  19. });
  20. });
  21. afterEach(function () {
  22. _enqueue.restore()
  23. });
  24. it("should set persistent parameter", function () {
  25. var visitor = ua("UA-XXXXX-XX")
  26. visitor.set("cd1", "bar")
  27. visitor.pageview("/foo")
  28. _enqueue.calledOnce.should.equal(true, "#_enqueue should have been called once");
  29. _enqueue.args[0][0].should.equal("pageview");
  30. _enqueue.args[0][1].should.have.keys("dp", "cd1")
  31. visitor.pageview("/foo/foo").event("Test Event", "Action")
  32. _enqueue.args[1][0].should.equal("pageview");
  33. _enqueue.args[1][1].should.have.keys("dp", "cd1")
  34. _enqueue.args[2][0].should.equal("event");
  35. _enqueue.args[2][1].should.have.keys("ec", "ea", "p", "cd1")
  36. });
  37. });
  38. });