From ebcd2c7d3b946c6cdf3074a7bfb42b90f388f7af Mon Sep 17 00:00:00 2001 From: Nathaniel Furniss Date: Sat, 1 Sep 2018 00:25:54 -0700 Subject: [PATCH] Add test for hideEmptyModelTypes --- tests/acceptance/data-test.js | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) diff --git a/tests/acceptance/data-test.js b/tests/acceptance/data-test.js index 364a769a9f..ce991a3f69 100644 --- a/tests/acceptance/data-test.js +++ b/tests/acceptance/data-test.js @@ -5,6 +5,7 @@ import { module, test } from 'qunit'; import { setupApplicationTest } from 'ember-qunit'; import { triggerPort } from '../helpers/trigger-port'; import wait from 'ember-test-helpers/wait'; +import LocalStorageService from 'ember-inspector/services/storage/local'; let port, name; @@ -32,6 +33,10 @@ module('Data Tab', function(hooks) { hooks.afterEach(function() { name = null; + // This is to ensure the hiding empty models setting does not persist across multiple test runs. + let storageServiceToUse = LocalStorageService.SUPPORTED ? 'local' : 'memory'; + let storageService = this.owner.lookup(`service:storage/${storageServiceToUse}`); + storageService.removeItem('are-model-types-hidden'); }); function modelTypeFactory(options) { @@ -168,6 +173,29 @@ module('Data Tab', function(hooks) { assert.dom(lastRowColumns[0]).hasText('2', 'Records successfully removed.'); }); + test('Hiding empty model types', async function(assert) { + assert.expect(3); + + await visit('/data/model-types'); + + // Make one model type have a count of 0 + await triggerPort(this, 'data:modelTypesUpdated', { + modelTypes: [ + modelTypeFactory({ name: 'App.Post', count: 0 }) + ] + }); + + assert.dom('.js-model-type').exists({ count: 2 }, 'All models are present'); + + // Hide empty models + await click('#options-hideEmptyModelTypes'); + assert.dom('.js-model-type').exists({ count: 1 }, 'Only non-empty models are present'); + + // Show empty models + await click('#options-hideEmptyModelTypes'); + assert.dom('.js-model-type').exists({ count: 2 }, 'All models are present again'); + }); + test('Filtering records', async function t(assert) { await visit('/data/model-types');