Yuki Takei 6 лет назад
Родитель
Сommit
4af9220ec4

+ 13 - 2
packages/growi-commons/src/plugin/service/tag-cache-manager.js

@@ -1,10 +1,9 @@
 import { LocalStorageManager } from '../../service/localstorage-manager';
 
-
 /**
  * Service Class for caching React state and TagContext
  */
-export default class TagCacheManager {
+class TagCacheManager {
 
   /**
    * @callback generateCacheKey
@@ -19,6 +18,16 @@ export default class TagCacheManager {
    * @param {generateCacheKey} generateCacheKey
    */
   constructor(cacheNs, generateCacheKey) {
+    if (cacheNs == null) {
+      throw new Error('args \'cacheNs\' is required.');
+    }
+    if (generateCacheKey == null) {
+      throw new Error('args \'generateCacheKey\' is required.');
+    }
+    if (typeof generateCacheKey !== 'function') {
+      throw new Error('args \'generateCacheKey\' should be function.');
+    }
+
     this.cacheNs = cacheNs;
     this.generateCacheKey = generateCacheKey;
   }
@@ -58,3 +67,5 @@ export default class TagCacheManager {
   }
 
 }
+
+module.exports = TagCacheManager;

+ 14 - 0
packages/growi-commons/src/test/plugin/service/tag-cache-manager.test.js

@@ -0,0 +1,14 @@
+import each from 'jest-each';
+
+require('module-alias/register');
+
+const TagCacheManager = require('@src/plugin/service/tag-cache-manager');
+
+describe('TagCacheManager', () => {
+
+  test('.constructor set params', () => {
+    const instance = new TagCacheManager('dummy ns', (tagContext) => {});
+    expect(instance).not.toBeNull();
+  });
+
+});