Просмотр исходного кода

WIP: implement validateReferer

Yuki Takei 2 лет назад
Родитель
Сommit
d720ba6e38

+ 32 - 0
apps/app/src/server/middlewares/certify-shared-file/validate-referer.spec.ts

@@ -0,0 +1,32 @@
+import { validateReferer } from './validate-referer';
+
+describe('validateReferer', () => {
+
+  describe('refurns false', () => {
+
+    it('when the referer argument is undefined', () => {
+      // when
+      const result = validateReferer(undefined);
+
+      // then
+      expect(result).toBeFalsy();
+    });
+
+  });
+
+  it('returns ValidReferer instance', () => {
+    // setup
+    const shareLinkId = '65436ba09ae6983bd608b89c';
+    const refererString = `https://example.com/share/${shareLinkId}`;
+
+    // when
+    const result = validateReferer(refererString);
+
+    // then
+    expect(result).toStrictEqual({
+      referer: refererString,
+      shareLinkId,
+    });
+  });
+
+});

+ 13 - 1
apps/app/src/server/middlewares/certify-shared-file/validate-referer.ts

@@ -1,12 +1,24 @@
+import loggerFactory from '~/utils/logger';
+
 import { ValidReferer } from './interfaces';
 
 
+const logger = loggerFactory('growi:middlewares:certify-shared-file:validate-referer');
+
+
 export const validateReferer = (referer: string | undefined): ValidReferer | false => {
   // not null
+  if (referer == null) {
+    logger.debug('referer string is undefined');
+    return false;
+  }
 
   // siteUrl
 
   // starts with /share/
 
-  return false;
+  return {
+    referer,
+    shareLinkId,
+  };
 };