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

willbarrett pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/incubator-superset.git


The following commit(s) were added to refs/heads/master by this push:
     new bb92c1f  feat: chart and dashboard card list view e2e cypress test 
(#10669)
bb92c1f is described below

commit bb92c1f84dace6a0d2383e6a0b88f01794ba8b39
Author: Lily Kuang <[email protected]>
AuthorDate: Thu Aug 27 09:38:12 2020 -0700

    feat: chart and dashboard card list view e2e cypress test (#10669)
    
    * card view cypress tests
    
    * update test config
    
    * chart filter cypress test
    
    * move setting to superset test config
    
    * update test description card view
---
 .github/workflows/superset-e2e.yml                 |   4 +-
 .../integration/chart_list/card_view.test.ts       | 106 ++++++++++++++++++++
 .../integration/chart_list/chart_list.helper.ts    |  19 ++++
 .../cypress/integration/chart_list/filter.test.ts  |  60 +++++++++++
 .../integration/chart_list/list_view.test.ts       |  49 +++++++++
 .../integration/dashboard_list/card_view.test.ts   | 110 +++++++++++++++++++++
 .../dashboard_list/dashboard_list.helper.ts        |  19 ++++
 .../integration/dashboard_list/filter.test.ts      |  48 +++++++++
 .../integration/dashboard_list/list_view.test.ts   |  48 +++++++++
 .../cypress/integration/explore/chart.test.js      |   2 +-
 tests/superset_test_config.py                      |   1 +
 11 files changed, 463 insertions(+), 3 deletions(-)

diff --git a/.github/workflows/superset-e2e.yml 
b/.github/workflows/superset-e2e.yml
index 57cb42c..78b759c 100644
--- a/.github/workflows/superset-e2e.yml
+++ b/.github/workflows/superset-e2e.yml
@@ -12,9 +12,9 @@ jobs:
         browser: ['chrome']
     env:
       FLASK_ENV: development
+      ENABLE_REACT_CRUD_VIEWS: true
       SUPERSET_CONFIG: tests.superset_test_config
-      SUPERSET__SQLALCHEMY_DATABASE_URI:
-        postgresql+psycopg2://superset:[email protected]:15432/superset
+      SUPERSET__SQLALCHEMY_DATABASE_URI: 
postgresql+psycopg2://superset:[email protected]:15432/superset
       PYTHONPATH: ${{ github.workspace }}
       REDIS_PORT: 16379
       GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
diff --git 
a/superset-frontend/cypress-base/cypress/integration/chart_list/card_view.test.ts
 
b/superset-frontend/cypress-base/cypress/integration/chart_list/card_view.test.ts
new file mode 100644
index 0000000..eda296f
--- /dev/null
+++ 
b/superset-frontend/cypress-base/cypress/integration/chart_list/card_view.test.ts
@@ -0,0 +1,106 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+import { CHART_LIST } from './chart_list.helper';
+
+describe('chart card view', () => {
+  beforeEach(() => {
+    cy.login();
+    cy.server();
+    cy.visit(CHART_LIST);
+  });
+
+  it('should load cards', () => {
+    cy.get('.chart-list-view');
+    cy.get('.ant-card').should('be.visible');
+    cy.get('.ant-card').should('have.length', 25);
+  });
+
+  it('should allow to favorite/unfavorite chart card', () => {
+    cy.get('.ant-card .card-actions')
+      .first()
+      .find("[data-test='favorite-selected']")
+      .should('not.exist');
+    cy.get(".ant-card .card-actions [data-test='favorite-unselected']")
+      .first()
+      .click();
+    cy.get('.ant-card .card-actions')
+      .first()
+      .find("[data-test='favorite-selected']")
+      .should('exist');
+    cy.get('.ant-card .card-actions')
+      .first()
+      .find("[data-test='favorite-unselected']")
+      .should('not.exist');
+
+    cy.get('.ant-card .card-actions')
+      .first()
+      .find("[data-test='favorite-unselected']")
+      .should('not.exist');
+    cy.get(".ant-card .card-actions [data-test='favorite-selected']")
+      .first()
+      .click();
+    cy.get('.ant-card .card-actions')
+      .first()
+      .find("[data-test='favorite-unselected']")
+      .should('exist');
+    cy.get('.ant-card .card-actions')
+      .first()
+      .find("[data-test='favorite-selected']")
+      .should('not.exist');
+  });
+
+  it('should sort correctly', () => {
+    // sort Alphabetical
+    cy.get('.Select__control').last().should('be.visible');
+    cy.get('.Select__control').last().click();
+    cy.get('.Select__menu').contains('Alphabetical').click();
+    cy.get('.chart-list-view').should('be.visible');
+    cy.get('.ant-card').first().contains('% Rural');
+
+    // sort Recently Modified
+    cy.get('.Select__control').last().should('be.visible');
+    cy.get('.Select__control').last().click();
+    cy.get('.Select__menu').contains('Recently Modified').click();
+    cy.get('.chart-list-view').should('be.visible');
+    cy.get('.ant-card').first().contains('Unicode Cloud');
+    cy.get('.ant-card').last().contains('Life Expectancy VS Rural %');
+  });
+
+  it('should delete correctly', () => {
+    // show delete modal
+    cy.get('.ant-dropdown-trigger').last().trigger('mouseover');
+    cy.get('.ant-dropdown-menu-item').contains('Delete').should('exist');
+    cy.get('.ant-dropdown-menu-item').contains('Delete').click();
+    cy.get('.modal-dialog').should('be.visible');
+    cy.get('.modal-dialog .btn-danger').should('have.attr', 'disabled');
+    cy.get(".modal-dialog input[id='delete']").type('DELETE');
+    cy.get('.modal-dialog .btn-danger').should('not.have.attr', 'disabled');
+    cy.get('.modal-dialog .btn-default').contains('Cancel').click();
+  });
+
+  it('should edit correctly', () => {
+    // show edit modal
+    cy.get('.ant-dropdown-trigger').last().trigger('mouseover');
+    cy.get('.ant-dropdown-menu-item').contains('Edit').should('exist');
+    cy.get('.ant-dropdown-menu-item').contains('Edit').click();
+    cy.get('.modal-dialog').should('be.visible');
+    cy.get('.modal-dialog input[name="name"]').should('not.have.value');
+    cy.get('.modal-dialog .btn-default').contains('Cancel').click();
+  });
+});
diff --git 
a/superset-frontend/cypress-base/cypress/integration/chart_list/chart_list.helper.ts
 
b/superset-frontend/cypress-base/cypress/integration/chart_list/chart_list.helper.ts
new file mode 100644
index 0000000..0d66010
--- /dev/null
+++ 
b/superset-frontend/cypress-base/cypress/integration/chart_list/chart_list.helper.ts
@@ -0,0 +1,19 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+export const CHART_LIST = '/chart/list/';
diff --git 
a/superset-frontend/cypress-base/cypress/integration/chart_list/filter.test.ts 
b/superset-frontend/cypress-base/cypress/integration/chart_list/filter.test.ts
new file mode 100644
index 0000000..39dafc1
--- /dev/null
+++ 
b/superset-frontend/cypress-base/cypress/integration/chart_list/filter.test.ts
@@ -0,0 +1,60 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+import { CHART_LIST } from './chart_list.helper';
+
+describe('chart filters', () => {
+  beforeEach(() => {
+    cy.login();
+    cy.server();
+    cy.visit(CHART_LIST);
+  });
+
+  it('should filter by owners correctly', () => {
+    // filter by owners
+    cy.get('.Select__control').first().click();
+    cy.get('.Select__menu').contains('alpha user').click();
+    cy.get('.ant-card').should('not.exist');
+    cy.get('.Select__control').first().click();
+    cy.get('.Select__menu').contains('gamma user').click();
+    cy.get('.ant-card').should('not.exist');
+  });
+
+  it('should filter by viz type correctly', () => {
+    // filter by viz type
+    cy.get('.Select__control').eq(1).click();
+    cy.get('.Select__menu').contains('area').click({ timeout: 5000 });
+    cy.get('.ant-card').its('length').should('be.gt', 0);
+    cy.get('.ant-card').contains("World's Pop Growth").should('exist');
+    cy.get('.Select__control').eq(1).click();
+    cy.get('.Select__control').eq(1).type('world_map{enter}');
+    cy.get('.ant-card').should('have.length', 1);
+    cy.get('.ant-card').contains('% Rural').should('exist');
+  });
+
+  it('should filter by datasource correctly', () => {
+    // filter by datasource
+    cy.get('.Select__control').eq(2).click();
+    cy.get('.Select__menu').contains('unicode_test').click();
+    cy.get('.ant-card').should('have.length', 1);
+    cy.get('.ant-card').contains('Unicode Cloud').should('exist');
+    cy.get('.Select__control').eq(2).click();
+    cy.get('.Select__control').eq(2).type('energy_usage{enter}{enter}');
+    cy.get('.ant-card').its('length').should('be.gt', 0);
+  });
+});
diff --git 
a/superset-frontend/cypress-base/cypress/integration/chart_list/list_view.test.ts
 
b/superset-frontend/cypress-base/cypress/integration/chart_list/list_view.test.ts
new file mode 100644
index 0000000..10de8a6
--- /dev/null
+++ 
b/superset-frontend/cypress-base/cypress/integration/chart_list/list_view.test.ts
@@ -0,0 +1,49 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+import { CHART_LIST } from './chart_list.helper';
+
+describe('chart list view', () => {
+  beforeEach(() => {
+    cy.login();
+    cy.server();
+    cy.visit(CHART_LIST);
+    cy.get('[data-test="list-view"]').click();
+  });
+
+  it.skip('should load rows', () => {
+    cy.get('.chart-list-view');
+    cy.get('table[role="table"]').should('be.visible');
+
+    // check chart list view header
+    cy.get('th[role="columnheader"]:nth-child(2)').contains('Chart');
+    cy.get('th[role="columnheader"]:nth-child(3)').contains(
+      'Visualization Type',
+    );
+    cy.get('th[role="columnheader"]:nth-child(4)').contains('Datasource');
+    cy.get('th[role="columnheader"]:nth-child(5)').contains('Modified By');
+    cy.get('th[role="columnheader"]:nth-child(6)').contains('Last Modified');
+    cy.get('th[role="columnheader"]:nth-child(7)').contains('Actions');
+    cy.get('.table-row').should('have.length', 25);
+  });
+
+  it('should sort correctly', () => {
+    cy.get('th[role="columnheader"]:nth-child(2)').click();
+    cy.get('.table-row td:nth-child(2):eq(0)').contains('% Rural');
+  });
+});
diff --git 
a/superset-frontend/cypress-base/cypress/integration/dashboard_list/card_view.test.ts
 
b/superset-frontend/cypress-base/cypress/integration/dashboard_list/card_view.test.ts
new file mode 100644
index 0000000..11a45e2
--- /dev/null
+++ 
b/superset-frontend/cypress-base/cypress/integration/dashboard_list/card_view.test.ts
@@ -0,0 +1,110 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+import { DASHBOARD_LIST } from './dashboard_list.helper';
+
+describe('Dashboard card view', () => {
+  beforeEach(() => {
+    cy.login();
+    cy.server();
+    cy.visit(DASHBOARD_LIST);
+  });
+
+  it('should load cards', () => {
+    cy.get('.dashboard-list-view');
+    cy.get('.ant-card').should('be.visible');
+    cy.get('.ant-card').should('have.length', 4);
+  });
+
+  it('should allow to favorite/unfavorite dashboard card', () => {
+    cy.get('.ant-card .card-actions')
+      .first()
+      .find("[data-test='favorite-selected']")
+      .should('not.exist');
+    cy.get(".ant-card .card-actions [data-test='favorite-unselected']")
+      .first()
+      .click();
+    cy.get('.ant-card .card-actions')
+      .first()
+      .find("[data-test='favorite-selected']")
+      .should('exist');
+    cy.get('.ant-card .card-actions')
+      .first()
+      .find("[data-test='favorite-unselected']")
+      .should('not.exist');
+
+    cy.get('.ant-card .card-actions')
+      .first()
+      .find("[data-test='favorite-unselected']")
+      .should('not.exist');
+    cy.get(".ant-card .card-actions [data-test='favorite-selected']")
+      .first()
+      .click();
+    cy.get('.ant-card .card-actions')
+      .first()
+      .find("[data-test='favorite-unselected']")
+      .should('exist');
+    cy.get('.ant-card .card-actions')
+      .first()
+      .find("[data-test='favorite-selected']")
+      .should('not.exist');
+  });
+
+  it('should sort correctly', () => {
+    // sort alphabetical
+    cy.get('.Select__control').last().should('be.visible');
+    cy.get('.Select__control').last().click({ force: true });
+    cy.get('.Select__menu').contains('Alphabetical').click();
+    cy.get('.dashboard-list-view').should('be.visible');
+    cy.get('.ant-card').first().contains('Tabbed Dashboard');
+    cy.get('.ant-card').last().contains("World Bank's Data");
+
+    // sort recently modified
+    cy.get('.Select__control').last().should('be.visible');
+    cy.get('.Select__control').last().click({ force: true });
+    cy.get('.Select__menu').contains('Recently Modified').click();
+    cy.get('.dashboard-list-view').should('be.visible');
+    cy.get('.ant-card').first().contains('Tabbed Dashboard');
+    cy.get('.ant-card').last().contains("World Bank's Data");
+  });
+
+  it('should delete correctly', () => {
+    // show delete modal
+    cy.get('.ant-dropdown-trigger').last().trigger('mouseover');
+    cy.get('.ant-dropdown-menu-item').contains('Delete').should('exist');
+    cy.get('.ant-dropdown-menu-item').contains('Delete').click();
+    cy.get('.modal-dialog').should('be.visible');
+    cy.get('.modal-dialog .btn-danger').should('have.attr', 'disabled');
+    cy.get(".modal-dialog input[id='delete']").type('DELETE');
+    cy.get('.modal-dialog .btn-danger').should('not.have.attr', 'disabled');
+    cy.get('.modal-dialog .btn-default').contains('Cancel').click();
+  });
+
+  it('should edit correctly', () => {
+    // show edit modal
+    cy.get('.ant-dropdown-trigger').last().trigger('mouseover');
+    cy.get('.ant-dropdown-menu-item').contains('Edit').should('exist');
+    cy.get('.ant-dropdown-menu-item').contains('Edit').click();
+    cy.get('.modal-dialog').should('be.visible');
+    cy.get('.modal-dialog input[name="dashboard_title"]').should(
+      'not.have.value',
+    );
+    cy.get('.modal-dialog input[name="slug"]').should('not.have.value');
+    cy.get('.modal-dialog .btn-default').contains('Cancel').click();
+  });
+});
diff --git 
a/superset-frontend/cypress-base/cypress/integration/dashboard_list/dashboard_list.helper.ts
 
b/superset-frontend/cypress-base/cypress/integration/dashboard_list/dashboard_list.helper.ts
new file mode 100644
index 0000000..5ccb394
--- /dev/null
+++ 
b/superset-frontend/cypress-base/cypress/integration/dashboard_list/dashboard_list.helper.ts
@@ -0,0 +1,19 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+export const DASHBOARD_LIST = '/dashboard/list/';
diff --git 
a/superset-frontend/cypress-base/cypress/integration/dashboard_list/filter.test.ts
 
b/superset-frontend/cypress-base/cypress/integration/dashboard_list/filter.test.ts
new file mode 100644
index 0000000..0a932d4
--- /dev/null
+++ 
b/superset-frontend/cypress-base/cypress/integration/dashboard_list/filter.test.ts
@@ -0,0 +1,48 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+import { DASHBOARD_LIST } from './dashboard_list.helper';
+
+describe('dashboard filters', () => {
+  beforeEach(() => {
+    cy.login();
+    cy.server();
+    cy.visit(DASHBOARD_LIST);
+  });
+
+  it('should filter by owners correctly', () => {
+    // filter by owners
+    cy.get('.Select__control').first().click();
+    cy.get('.Select__menu').contains('alpha user').click();
+    cy.get('.ant-card').should('not.exist');
+    cy.get('.Select__control').first().click();
+    cy.get('.Select__menu').contains('gamma user').click();
+    cy.get('.ant-card').should('not.exist');
+  });
+
+  it('should filter by published correctly', () => {
+    // filter by published
+    cy.get('.Select__control').eq(1).click();
+    cy.get('.Select__menu').contains('Published').click();
+    cy.get('.ant-card').should('have.length', 2);
+    cy.get('.ant-card').first().contains('USA Births Names').should('exist');
+    cy.get('.Select__control').eq(1).click();
+    cy.get('.Select__control').eq(1).type('unpub{enter}');
+    cy.get('.ant-card').should('have.length', 2);
+  });
+});
diff --git 
a/superset-frontend/cypress-base/cypress/integration/dashboard_list/list_view.test.ts
 
b/superset-frontend/cypress-base/cypress/integration/dashboard_list/list_view.test.ts
new file mode 100644
index 0000000..380a9ce
--- /dev/null
+++ 
b/superset-frontend/cypress-base/cypress/integration/dashboard_list/list_view.test.ts
@@ -0,0 +1,48 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+import { DASHBOARD_LIST } from './dashboard_list.helper';
+
+describe('dashboard list view', () => {
+  beforeEach(() => {
+    cy.login();
+    cy.server();
+    cy.visit(DASHBOARD_LIST);
+    cy.get('[data-test="list-view"]').click();
+  });
+
+  it('should load rows', () => {
+    cy.get('.dashboard-list-view');
+    cy.get('table[role="table"]').should('be.visible');
+    // check dashboard list view header
+    cy.get('th[role="columnheader"]:nth-child(2)').contains('Title');
+    cy.get('th[role="columnheader"]:nth-child(3)').contains('Owners');
+    cy.get('th[role="columnheader"]:nth-child(4)').contains('Modified By');
+    cy.get('th[role="columnheader"]:nth-child(5)').contains('Published');
+    cy.get('th[role="columnheader"]:nth-child(6)').contains('Modified');
+    cy.get('th[role="columnheader"]:nth-child(7)').contains('Actions');
+    cy.get('.table-row').should('have.length', 4);
+  });
+
+  it('should sort correctly', () => {
+    cy.get('th[role="columnheader"]:nth-child(2)').click();
+    cy.get('.table-row td:nth-child(2):eq(0)').contains('Tabbed Dashboard');
+    cy.get('th[role="columnheader"]:nth-child(6)').click();
+    cy.get('.table-row  td:nth-child(2):eq(0)').contains("World Bank's Data");
+  });
+});
diff --git 
a/superset-frontend/cypress-base/cypress/integration/explore/chart.test.js 
b/superset-frontend/cypress-base/cypress/integration/explore/chart.test.js
index 2839fe2..be1fe6e 100644
--- a/superset-frontend/cypress-base/cypress/integration/explore/chart.test.js
+++ b/superset-frontend/cypress-base/cypress/integration/explore/chart.test.js
@@ -25,7 +25,7 @@ describe('No Results', () => {
     cy.route('POST', '/superset/explore_json/**').as('getJson');
   });
 
-  it('No results  message shows up', () => {
+  it('No results message shows up', () => {
     const formData = {
       ...FORM_DATA_DEFAULTS,
       metrics: [NUM_METRIC],
diff --git a/tests/superset_test_config.py b/tests/superset_test_config.py
index c88c584..49546af 100644
--- a/tests/superset_test_config.py
+++ b/tests/superset_test_config.py
@@ -57,6 +57,7 @@ PUBLIC_ROLE_LIKE_GAMMA = True
 AUTH_ROLE_PUBLIC = "Public"
 EMAIL_NOTIFICATIONS = False
 ENABLE_ROW_LEVEL_SECURITY = True
+ENABLE_REACT_CRUD_VIEWS = os.environ.get("ENABLE_REACT_CRUD_VIEWS", False)
 
 CACHE_CONFIG = {"CACHE_TYPE": "simple"}
 

Reply via email to