You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@flagon.apache.org by po...@apache.org on 2022/03/25 06:29:23 UTC

[incubator-flagon-useralejs] 01/04: first commit

This is an automated email from the ASF dual-hosted git repository.

poorejc pushed a commit to branch setupStartStopRefactor
in repository https://gitbox.apache.org/repos/asf/incubator-flagon-useralejs.git

commit 49a601814f9dcae8b690a22b43e00f7efce518cb
Author: giterdone77 <kb...@gmail.com>
AuthorDate: Wed Mar 23 22:01:53 2022 -0400

    first commit
---
 src/configure.js       |  5 +++++
 src/main.js            |  2 +-
 test/configure_spec.js | 19 +++++++++++++++++--
 test/main_spec.js      | 12 ++++++++++++
 4 files changed, 35 insertions(+), 3 deletions(-)

diff --git a/src/configure.js b/src/configure.js
index fb369d9..1b25a30 100644
--- a/src/configure.js
+++ b/src/configure.js
@@ -22,6 +22,8 @@
  * @param  {Object} newConfig Configuration object to merge into the current config.
  */
 export function configure(config, newConfig) {
+  const configAutostart = config['autostart'];
+  const newConfigAutostart = newConfig['autostart'];
   Object.keys(newConfig).forEach(function(option) {
     if (option === 'userFromParams') {
       const userId = getUserIdFromParams(newConfig[option]);
@@ -30,6 +32,9 @@ export function configure(config, newConfig) {
       }
     }
     config[option] = newConfig[option];
+    if (configAutostart === false || newConfigAutostart === false){
+      config['autostart'] = false;
+    }
   });
 }
 
diff --git a/src/main.js b/src/main.js
index f1bdfad..5ca5386 100644
--- a/src/main.js
+++ b/src/main.js
@@ -63,7 +63,7 @@ function setup(config) {
         setTimeout(function () {
             const state = document.readyState;
 
-            if (state === 'interactive' || state === 'complete') {
+            if (config.autostart && (state === 'interactive' || state === 'complete')) {
                 attachHandlers(config);
                 initSender(logs, config);
                 started = config.on = true;
diff --git a/test/configure_spec.js b/test/configure_spec.js
index 7307484..c9086c1 100644
--- a/test/configure_spec.js
+++ b/test/configure_spec.js
@@ -15,8 +15,7 @@
  * limitations under the License.
  */
 import { expect } from 'chai';
-import jsdom from 'jsdom';
-import fs from 'fs';
+
 import { getUserIdFromParams, configure } from '../src/configure';
 
 describe('configure', () => {
@@ -28,6 +27,22 @@ describe('configure', () => {
     done();
   });
 
+  it('Config autostart false makes autostart false', (done) => {
+    const config = {autostart: false};
+    const newConfig = { autostart: true };
+    configure(config, newConfig);
+    expect(config).to.deep.equal({ autostart: false });
+    done();
+  });
+
+  it('neither autostart false makes autostart true', (done) => {
+    const config = {autostart: undefined};
+    const newConfig = { autostart: true };
+    configure(config, newConfig);
+    expect(config).to.deep.equal({ autostart: true });
+    done();
+  });
+
   it('includes a userid if present in the window.location', (done) => {
     const config = {};
     const newConfig = { foo: 'bar', userFromParams: 'user', };
diff --git a/test/main_spec.js b/test/main_spec.js
index 5146ec3..64ba123 100644
--- a/test/main_spec.js
+++ b/test/main_spec.js
@@ -57,6 +57,18 @@ describe('Userale API', () => {
         dom.window.close();
     });
 
+    it('autostart check', async () => {
+        const dom = await createEnvFromFile(htmlFileName)
+        const config = dom.window.userale.options();
+        dom.window.userale.options({
+            autostart: false
+        });
+        const newConfig = dom.window.userale.options();
+
+        expect(newConfig.autostart).to.equal(false);
+        dom.window.close();
+    });
+
     it('starts + stops', async () => {
         const dom = await createEnvFromFile(htmlFileName)
         setTimeout(() => {