1
0
mirror of https://github.com/TryGhost/Ghost.git synced 2024-12-23 02:41:50 +03:00
Ghost/ghost/admin/tests/integration/components/gh-psm-template-select-test.js
Kevin Ansfield d6c22df6d7 🎨 Separated post and page list screens ()
no issue
- added `page` model
- removed `page` param from Post model
- added pages screen with associated links
- added `:type` param to editor screens to work with the right models
- removed post<->page toggle and associated tour item
2019-02-22 10:17:33 +07:00

90 lines
2.6 KiB
JavaScript

import hbs from 'htmlbars-inline-precompile';
import mockThemes from '../../../mirage/config/themes';
import wait from 'ember-test-helpers/wait';
import {describe, it} from 'mocha';
import {expect} from 'chai';
import {find, render} from '@ember/test-helpers';
import {setupRenderingTest} from 'ember-mocha';
import {startMirage} from 'ghost-admin/initializers/ember-cli-mirage';
describe('Integration: Component: gh-psm-template-select', function () {
setupRenderingTest();
let server;
beforeEach(function () {
server = startMirage();
server.create('theme', {
active: true,
name: 'example-theme',
package: {
name: 'Example Theme',
version: '0.1'
},
templates: [
{
filename: 'custom-news-bulletin.hbs',
name: 'News Bulletin',
for: ['post', 'page'],
slug: null
},
{
filename: 'custom-big-images.hbs',
name: 'Big Images',
for: ['post', 'page'],
slug: null
},
{
filename: 'post-one.hbs',
name: 'One',
for: ['post'],
slug: 'one'
},
{
filename: 'page-about.hbs',
name: 'About',
for: ['page'],
slug: 'about'
}
]
});
mockThemes(server);
});
afterEach(function () {
server.shutdown();
});
it('disables template selector if slug matches post template', async function () {
this.set('post', {
slug: 'one',
constructor: {
modelName: 'post'
}
});
await render(hbs`{{gh-psm-template-select post=post}}`);
await wait();
expect(find('select').disabled, 'select is disabled').to.be.true;
expect(find('p')).to.contain.text('post-one.hbs');
});
it('disables template selector if slug matches page template', async function () {
this.set('post', {
slug: 'about',
constructor: {
modelName: 'page'
}
});
await render(hbs`{{gh-psm-template-select post=post}}`);
await wait();
expect(find('select').disabled, 'select is disabled').to.be.true;
expect(find('p')).to.contain.text('page-about.hbs');
});
});