add addCookie helper to common utilities
[squeep-api-dingus] / test / lib / common.js
index 6140d874bd9ef41a9591c28194ae772f21c1e3d9..4b10d38965777c2372a4dadbc2fcd446d6af1e75 100644 (file)
@@ -351,4 +351,41 @@ describe('common', function () {
     });
   }); // unfoldHeaderLines
 
+  describe('addCookie', function () {
+    let res, name, value;
+    beforeEach(function () {
+      res = {
+        appendHeader: sinon.stub(),
+      };
+      name = 'someCookieName';
+      value = 'someCookieValue';
+    });
+    it('covers no options', function () {
+      common.addCookie(res, name, value, {});
+      assert(res.appendHeader.called);
+    });
+    it('covers all options', function () {
+      common.addCookie(res, name, value, {
+        domain: 'example.com',
+        expires: new Date(),
+        httpOnly: true,
+        maxAge: 9999999,
+        path: '/foo',
+        sameSite: 'Lax',
+        secure: true,
+      });
+      assert(res.appendHeader.called);
+    });
+    it('covers invalid expires', function () {
+      assert.throws(() => common.addCookie(res, name, value, { expires: 'never' }), TypeError);
+    });
+    it('covers invalid sameSite', function () {
+      assert.throws(() => common.addCookie(res, name, value, { sameSite: 'Whatever' }));
+    });
+    it('covers no options', function () {
+      common.addCookie(res, name, value);
+      assert(res.appendHeader.called);
+    });
+  }); // addCookie
+
 });