database migration 1.0.4, store topic fetch etag/last-modified, provide these when...
[websub-hub] / test / src / communication.js
index 960a0f994b27a572236a92131638b326c59f4ece..d5ebe54222664863411dd4fcf4898cf3a9028a6a 100644 (file)
@@ -552,6 +552,8 @@ describe('Communication', function () {
         headers: {
           'content-type': 'text/plain',
           link: '<https://example.com/hub/>; rel="hub"',
+          'last-modified': 'Thu, 18 Nov 2021 20:34:35 GMT',
+          'etag': '"9c104-1673e-5d1161636d742"',
         },
         data: 'Jackdaws love my big sphinx of quartz.',
       });
@@ -631,6 +633,20 @@ describe('Communication', function () {
       assert(!communication.db.topicSetContent.called);
     });
 
+    it('recognizes 304 response', async function () {
+      topic.httpLastModified = 'Thu, 18 Nov 2021 20:34:35 GMT';
+      topic.httpEtag = '"9c104-1673e-5d1161636d742"';
+      communication.db.topicGetById.resolves(topic);
+      communication.axios.resolves({
+        status: 304,
+      });
+
+      await communication.topicFetchProcess(dbCtx, topicId, requestId);
+
+      assert(communication.db.topicFetchComplete.called);
+      assert(!communication.db.topicSetContent.called);
+    });
+
     it('updates content', async function () {
       await communication.topicFetchProcess(dbCtx, topicId, requestId);