From 5f499b95451180df305bce4fe919924fbed9fa45 Mon Sep 17 00:00:00 2001 From: aspedrosa Date: Wed, 29 Jan 2020 23:45:20 +0000 Subject: [PATCH] Avoid fetch fav dashboard stat not logged in (#8527) * Avoid fetch fav dashboard stat not logged in * Fix old Header tests and add a new one * Add userId to other Header tests to be consistent * Format code to make 'prettier' tests pass --- .../dashboard/components/Header_spec.jsx | 69 +++++++++++++++++-- .../src/dashboard/components/Header.jsx | 18 ++--- 2 files changed, 75 insertions(+), 12 deletions(-) diff --git a/superset/assets/spec/javascripts/dashboard/components/Header_spec.jsx b/superset/assets/spec/javascripts/dashboard/components/Header_spec.jsx index 8adfac7c39..83daa0541d 100644 --- a/superset/assets/spec/javascripts/dashboard/components/Header_spec.jsx +++ b/superset/assets/spec/javascripts/dashboard/components/Header_spec.jsx @@ -31,7 +31,12 @@ describe('Header', () => { const props = { addSuccessToast: () => {}, addDangerToast: () => {}, - dashboardInfo: { id: 1, dash_edit_perm: true, dash_save_perm: true }, + dashboardInfo: { + id: 1, + dash_edit_perm: true, + dash_save_perm: true, + userId: 1, + }, dashboardTitle: 'title', charts: {}, layout: {}, @@ -74,7 +79,12 @@ describe('Header', () => { describe('read-only-user', () => { const overrideProps = { - dashboardInfo: { id: 1, dash_edit_perm: false, dash_save_perm: false }, + dashboardInfo: { + id: 1, + dash_edit_perm: false, + dash_save_perm: false, + userId: 1, + }, }; it('should render the EditableTitle', () => { @@ -111,7 +121,12 @@ describe('Header', () => { describe('write-user', () => { const overrideProps = { editMode: false, - dashboardInfo: { id: 1, dash_edit_perm: true, dash_save_perm: true }, + dashboardInfo: { + id: 1, + dash_edit_perm: true, + dash_save_perm: true, + userId: 1, + }, }; it('should render the EditableTitle', () => { @@ -148,7 +163,12 @@ describe('Header', () => { describe('write-user-with-edit-mode', () => { const overrideProps = { editMode: true, - dashboardInfo: { id: 1, dash_edit_perm: true, dash_save_perm: true }, + dashboardInfo: { + id: 1, + dash_edit_perm: true, + dash_save_perm: true, + userId: 1, + }, }; it('should render the EditableTitle', () => { @@ -181,4 +201,45 @@ describe('Header', () => { expect(wrapper.find(UndoRedoKeylisteners)).toHaveLength(1); }); }); + + describe('logged-out-user', () => { + const overrideProps = { + dashboardInfo: { + id: 1, + dash_edit_perm: false, + dash_save_perm: false, + userId: null, + }, + }; + + it('should render the EditableTitle', () => { + const wrapper = setup(overrideProps); + expect(wrapper.find(EditableTitle)).toHaveLength(1); + }); + + it('should render the PublishedStatus', () => { + const wrapper = setup(overrideProps); + expect(wrapper.find(PublishedStatus)).toHaveLength(1); + }); + + it('should not render the FaveStar', () => { + const wrapper = setup(overrideProps); + expect(wrapper.find(FaveStar)).toHaveLength(0); + }); + + it('should render the HeaderActionsDropdown', () => { + const wrapper = setup(overrideProps); + expect(wrapper.find(HeaderActionsDropdown)).toHaveLength(1); + }); + + it('should render one Button', () => { + const wrapper = setup(overrideProps); + expect(wrapper.find(Button)).toHaveLength(1); + }); + + it('should not set up undo/redo', () => { + const wrapper = setup(overrideProps); + expect(wrapper.find(UndoRedoKeylisteners)).toHaveLength(0); + }); + }); }); diff --git a/superset/assets/src/dashboard/components/Header.jsx b/superset/assets/src/dashboard/components/Header.jsx index 4542f9a4b2..ab565a8e79 100644 --- a/superset/assets/src/dashboard/components/Header.jsx +++ b/superset/assets/src/dashboard/components/Header.jsx @@ -317,14 +317,16 @@ class Header extends React.PureComponent { canSave={userCanSaveAs} /> - - - + {dashboardInfo.userId && ( + + + + )}