You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@couchdb.apache.org by am...@apache.org on 2018/01/25 01:43:32 UTC

[couchdb-fauxton] branch master updated: Configure the notification's visible time (#1047)

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

amaranhao pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/couchdb-fauxton.git


The following commit(s) were added to refs/heads/master by this push:
     new ef0c189  Configure the notification's visible time (#1047)
ef0c189 is described below

commit ef0c1894eeea95cdff61b5b68108ef6f9f6986e5
Author: Antonio Maranhao <30...@users.noreply.github.com>
AuthorDate: Wed Jan 24 20:43:29 2018 -0500

    Configure the notification's visible time (#1047)
    
    * Allows setting the notification's visible time
    
    * Added Jest test
    
    * Set pouchdb-core version to fix runtime failure
---
 .../notifications/__tests__/components.test.js     | 75 +++++++++++++++-------
 app/addons/fauxton/notifications/notifications.js  |  2 +
 package.json                                       |  4 +-
 3 files changed, 55 insertions(+), 26 deletions(-)

diff --git a/app/addons/fauxton/notifications/__tests__/components.test.js b/app/addons/fauxton/notifications/__tests__/components.test.js
index 829f920..9c3bb31 100644
--- a/app/addons/fauxton/notifications/__tests__/components.test.js
+++ b/app/addons/fauxton/notifications/__tests__/components.test.js
@@ -16,8 +16,8 @@ import utils from "../../../../../test/mocha/testUtils";
 import React from "react";
 import ReactDOM from "react-dom";
 import moment from "moment";
-import {mount} from 'enzyme';
-import "sinon";
+import { mount } from 'enzyme';
+import sinon from 'sinon';
 const assert = utils.assert;
 var store = Stores.notificationStore;
 
@@ -50,6 +50,33 @@ describe('NotificationController', () => {
   });
 });
 
+describe('Notification', () => {
+  it('startHide is only called after visible time is out', (done) => {
+    store._notificationCenterVisible = true;
+    const spy = sinon.spy();
+    const component = mount(<Views.Notification
+      notificationId={'some id'}
+      isHiding={false}
+      key={11}
+      msg={'a msg'}
+      type={'error'}
+      escape={true}
+      style={{opacity:1}}
+      visibleTime={1000}
+      onStartHide={spy}
+      onHideComplete={() => {}}
+    />);
+
+    assert.notOk(spy.called);
+
+    setTimeout(() => {
+      component.update();
+      assert.ok(spy.called);
+      done();
+    }, 3000);
+  });
+});
+
 describe('NotificationPanelRow', () => {
   const notifications = {
     success: {
@@ -103,7 +130,7 @@ describe('NotificationPanelRow', () => {
       style={style}
       isVisible={true}
       filter="all"
-      item={notifications.info}/>
+      item={notifications.info} />
     );
     assert.notOk(row3.find('li').prop('aria-hidden'));
   });
@@ -138,16 +165,16 @@ describe('NotificationCenterPanel', () => {
   });
 
   it('shows all notifications by default', (done) => {
-    store.addNotification({type: 'success', msg: 'Success are okay'});
-    store.addNotification({type: 'success', msg: 'another success.'});
-    store.addNotification({type: 'info', msg: 'A single info message'});
-    store.addNotification({type: 'error', msg: 'Error #1'});
-    store.addNotification({type: 'error', msg: 'Error #2'});
-    store.addNotification({type: 'error', msg: 'Error #3'});
+    store.addNotification({ type: 'success', msg: 'Success are okay' });
+    store.addNotification({ type: 'success', msg: 'another success.' });
+    store.addNotification({ type: 'info', msg: 'A single info message' });
+    store.addNotification({ type: 'error', msg: 'Error #1' });
+    store.addNotification({ type: 'error', msg: 'Error #2' });
+    store.addNotification({ type: 'error', msg: 'Error #3' });
 
     var panelEl = mount(
       <Views.NotificationCenterPanel
-        style={{x: 1}}
+        style={{ x: 1 }}
         visible={true}
         filter="all"
         notifications={store.getNotifications()}
@@ -160,16 +187,16 @@ describe('NotificationCenterPanel', () => {
   });
 
   it('appropriate filters are applied - 1', (done) => {
-    store.addNotification({type: 'success', msg: 'Success are okay'});
-    store.addNotification({type: 'success', msg: 'another success.'});
-    store.addNotification({type: 'info', msg: 'A single info message'});
-    store.addNotification({type: 'error', msg: 'Error #1'});
-    store.addNotification({type: 'error', msg: 'Error #2'});
-    store.addNotification({type: 'error', msg: 'Error #3'});
+    store.addNotification({ type: 'success', msg: 'Success are okay' });
+    store.addNotification({ type: 'success', msg: 'another success.' });
+    store.addNotification({ type: 'info', msg: 'A single info message' });
+    store.addNotification({ type: 'error', msg: 'Error #1' });
+    store.addNotification({ type: 'error', msg: 'Error #2' });
+    store.addNotification({ type: 'error', msg: 'Error #3' });
 
     var panelEl = mount(
       <Views.NotificationCenterPanel
-        style={{x: 1}}
+        style={{ x: 1 }}
         visible={true}
         filter="success"
         notifications={store.getNotifications()}
@@ -183,16 +210,16 @@ describe('NotificationCenterPanel', () => {
   });
 
   it('appropriate filters are applied - 2', (done) => {
-    store.addNotification({type: 'success', msg: 'Success are okay'});
-    store.addNotification({type: 'success', msg: 'another success.'});
-    store.addNotification({type: 'info', msg: 'A single info message'});
-    store.addNotification({type: 'error', msg: 'Error #1'});
-    store.addNotification({type: 'error', msg: 'Error #2'});
-    store.addNotification({type: 'error', msg: 'Error #3'});
+    store.addNotification({ type: 'success', msg: 'Success are okay' });
+    store.addNotification({ type: 'success', msg: 'another success.' });
+    store.addNotification({ type: 'info', msg: 'A single info message' });
+    store.addNotification({ type: 'error', msg: 'Error #1' });
+    store.addNotification({ type: 'error', msg: 'Error #2' });
+    store.addNotification({ type: 'error', msg: 'Error #3' });
 
     var panelEl = mount(
       <Views.NotificationCenterPanel
-        style={{x: 1}}
+        style={{ x: 1 }}
         visible={true}
         filter="error"
         notifications={store.getNotifications()}
diff --git a/app/addons/fauxton/notifications/notifications.js b/app/addons/fauxton/notifications/notifications.js
index 7473d0a..3897811 100644
--- a/app/addons/fauxton/notifications/notifications.js
+++ b/app/addons/fauxton/notifications/notifications.js
@@ -142,6 +142,7 @@ class GlobalNotifications extends React.Component {
           msg={notification.msg}
           type={notification.type}
           escape={notification.escape}
+          visibleTime={notification.visibleTime}
           onStartHide={Actions.startHidingNotification}
           onHideComplete={Actions.hideNotification} />
       );
@@ -160,6 +161,7 @@ class GlobalNotifications extends React.Component {
           msg={notification.msg}
           type={notification.type}
           escape={notification.escape}
+          visibleTime={notification.visibleTime}
           onStartHide={Actions.startHidingNotification}
           onHideComplete={Actions.hideNotification} />
       );
diff --git a/package.json b/package.json
index 13da0e8..cdd5fdb 100644
--- a/package.json
+++ b/package.json
@@ -86,8 +86,8 @@
     "moment": "^2.17.1",
     "nano": "~5.12.0",
     "optimist": "^0.6.1",
-    "pouchdb-adapter-http": "^6.1.2",
-    "pouchdb-core": "^6.1.2",
+    "pouchdb-adapter-http": "6.4.1",
+    "pouchdb-core": "6.4.1",
     "prop-types": "^15.6.0",
     "react": "~16.2.0",
     "react-bootstrap": "^0.31.3",

-- 
To stop receiving notification emails like this one, please contact
amaranhao@apache.org.