|
|
@@ -0,0 +1,52 @@
|
|
|
+const { expect } = require('chai')
|
|
|
+const SandboxedModule = require('sandboxed-module')
|
|
|
+const modulePath = require('path').join(
|
|
|
+ __dirname,
|
|
|
+ '../../../../app/src/Features/Helpers/FeatureFlag'
|
|
|
+)
|
|
|
+
|
|
|
+describe('FeatureFlag', function () {
|
|
|
+ beforeEach(function () {
|
|
|
+ this.FeatureFlag = SandboxedModule.require(modulePath, {})
|
|
|
+ })
|
|
|
+
|
|
|
+ describe('shouldDisplayFeature', function () {
|
|
|
+ describe('no req.query', function () {
|
|
|
+ const req = {}
|
|
|
+ it('should return false when variantFlag=false', function () {
|
|
|
+ expect(this.FeatureFlag.shouldDisplayFeature(req, '', false)).to.be
|
|
|
+ .false
|
|
|
+ })
|
|
|
+ it('should return true when variantFlag=true', function () {
|
|
|
+ expect(this.FeatureFlag.shouldDisplayFeature(req, '', true)).to.be.true
|
|
|
+ })
|
|
|
+ })
|
|
|
+
|
|
|
+ describe('req.query but no query param', function () {
|
|
|
+ const req = { query: {} }
|
|
|
+ it('should return false when variantFlag=false', function () {
|
|
|
+ expect(this.FeatureFlag.shouldDisplayFeature(req, '', false)).to.be
|
|
|
+ .false
|
|
|
+ })
|
|
|
+ it('should return true when variantFlag=true', function () {
|
|
|
+ expect(this.FeatureFlag.shouldDisplayFeature(req, '', true)).to.be.true
|
|
|
+ })
|
|
|
+ })
|
|
|
+
|
|
|
+ describe('req.query[name] exists', function () {
|
|
|
+ const paramName = 'test'
|
|
|
+ const req = { query: {} }
|
|
|
+
|
|
|
+ it('should return false when value is not "true"', function () {
|
|
|
+ req.query[paramName] = 'nope'
|
|
|
+ expect(this.FeatureFlag.shouldDisplayFeature(req, paramName, false)).to
|
|
|
+ .be.false
|
|
|
+ })
|
|
|
+ it('should return true when value is "true"', function () {
|
|
|
+ req.query[paramName] = 'true'
|
|
|
+ expect(this.FeatureFlag.shouldDisplayFeature(req, paramName, false)).to
|
|
|
+ .be.true
|
|
|
+ })
|
|
|
+ })
|
|
|
+ })
|
|
|
+})
|