Jelajahi Sumber

fix: test and improve boolify

KernelDeimos 4 bulan lalu
induk
melakukan
44ad3c5781
2 mengubah file dengan 23 tambahan dan 0 penghapusan
  1. 6 0
      src/backend/src/util/hl_types.js
  2. 17 0
      src/backend/src/util/hl_types.test.js

+ 6 - 0
src/backend/src/util/hl_types.js

@@ -44,6 +44,12 @@ const hl_type_definitions = {
                 return v;
             }
 
+            if ( v === 1 ) return true;
+            if ( v === 0 ) return false
+            if ( typeof v === 'object' ) {
+                return v !== null;
+            }
+
             throw new Error(`could not adapt value to boolean: ${quot(v)}`);
         }
     }

+ 17 - 0
src/backend/src/util/hl_types.test.js

@@ -0,0 +1,17 @@
+const { expect } = require('chai');
+const { boolify } = require('./hl_types');
+
+describe('hl_types', () => {
+    it('boolify falsy values', () => {
+        expect(boolify(undefined)).to.be.false;
+        expect(boolify(0)).to.be.false;
+        expect(boolify('')).to.be.false;
+        expect(boolify(null)).to.be.false;
+    })
+    it('boolify truthy values', () => {
+        expect(boolify(true)).to.be.true;
+        expect(boolify(1)).to.be.true;
+        expect(boolify('1')).to.be.true;
+        expect(boolify({})).to.be.true;
+    })
+});