mirror of
https://github.com/discourse/discourse.git
synced 2024-11-27 07:33:36 +08:00
315b9d796d
* better test helper * more reliable tests * more consistent use of data-value/data-name/title/aria-label everywhere: header and rows
191 lines
6.6 KiB
JavaScript
191 lines
6.6 KiB
JavaScript
import { acceptance } from 'helpers/qunit-helpers';
|
|
acceptance('Topic - Edit timer', { loggedIn: true });
|
|
|
|
QUnit.test('default', assert => {
|
|
const timerType = selectKit('.select-kit.timer-type');
|
|
const futureDateInputSelector = selectKit('.future-date-input-selector');
|
|
|
|
visit('/t/internationalization-localization');
|
|
click('.toggle-admin-menu');
|
|
click('.topic-admin-status-update button');
|
|
|
|
andThen(() => {
|
|
assert.equal(futureDateInputSelector.header().title(), 'Select a timeframe');
|
|
assert.equal(futureDateInputSelector.header().value(), null);
|
|
});
|
|
|
|
click('#private-topic-timer');
|
|
|
|
andThen(() => {
|
|
assert.equal(timerType.header().title(), 'Remind Me');
|
|
assert.equal(timerType.header().value(), 'reminder');
|
|
|
|
assert.equal(futureDateInputSelector.header().title(), 'Select a timeframe');
|
|
assert.equal(futureDateInputSelector.header().value(), null);
|
|
});
|
|
});
|
|
|
|
QUnit.test('autoclose - specific time', assert => {
|
|
const futureDateInputSelector = selectKit('.future-date-input-selector');
|
|
|
|
visit('/t/internationalization-localization');
|
|
click('.toggle-admin-menu');
|
|
click('.topic-admin-status-update button');
|
|
|
|
futureDateInputSelector.expand().selectRowByValue('next_week');
|
|
|
|
andThen(() => {
|
|
assert.equal(futureDateInputSelector.header().title(), 'Next week');
|
|
assert.equal(futureDateInputSelector.header().value(), 'next_week');
|
|
|
|
const regex = /will automatically close in/g;
|
|
const html = find('.future-date-input .topic-status-info').html().trim();
|
|
assert.ok(regex.test(html));
|
|
});
|
|
});
|
|
|
|
QUnit.test('autoclose', assert => {
|
|
const futureDateInputSelector = selectKit('.future-date-input-selector');
|
|
|
|
visit('/t/internationalization-localization');
|
|
click('.toggle-admin-menu');
|
|
click('.topic-admin-status-update button');
|
|
|
|
futureDateInputSelector.expand().selectRowByValue('next_week');
|
|
|
|
andThen(() => {
|
|
assert.equal(futureDateInputSelector.header().title(), 'Next week');
|
|
assert.equal(futureDateInputSelector.header().value(), 'next_week');
|
|
|
|
const regex = /will automatically close in/g;
|
|
const html = find('.future-date-input .topic-status-info').html().trim();
|
|
assert.ok(regex.test(html));
|
|
});
|
|
|
|
futureDateInputSelector.expand().selectRowByValue('pick_date_and_time');
|
|
|
|
fillIn('.future-date-input .date-picker', '2099-11-24');
|
|
|
|
andThen(() => {
|
|
assert.equal(futureDateInputSelector.header().title(), 'Pick date and time');
|
|
assert.equal(futureDateInputSelector.header().value(), 'pick_date_and_time');
|
|
|
|
const regex = /will automatically close in/g;
|
|
const html = find('.future-date-input .topic-status-info').html().trim();
|
|
assert.ok(regex.test(html));
|
|
});
|
|
|
|
futureDateInputSelector.expand().selectRowByValue('set_based_on_last_post');
|
|
|
|
fillIn('.future-date-input input[type=number]', '2');
|
|
|
|
andThen(() => {
|
|
assert.equal(futureDateInputSelector.header().title(), 'Close based on last post');
|
|
assert.equal(futureDateInputSelector.header().value(), 'set_based_on_last_post');
|
|
|
|
const regex = /This topic will close.*after the last reply/g;
|
|
const html = find('.future-date-input .topic-status-info').html().trim();
|
|
assert.ok(regex.test(html));
|
|
});
|
|
});
|
|
|
|
QUnit.test('close temporarily', assert => {
|
|
const timerType = selectKit('.select-kit.timer-type');
|
|
const futureDateInputSelector = selectKit('.future-date-input-selector');
|
|
|
|
visit('/t/internationalization-localization');
|
|
click('.toggle-admin-menu');
|
|
click('.topic-admin-status-update button');
|
|
|
|
timerType.expand().selectRowByValue('open');
|
|
|
|
andThen(() => {
|
|
assert.equal(futureDateInputSelector.header().title(), 'Select a timeframe');
|
|
assert.equal(futureDateInputSelector.header().value(), null);
|
|
});
|
|
|
|
futureDateInputSelector.expand().selectRowByValue('next_week');
|
|
|
|
andThen(() => {
|
|
assert.equal(futureDateInputSelector.header().title(), 'Next week');
|
|
assert.equal(futureDateInputSelector.header().value(), 'next_week');
|
|
|
|
const regex = /will automatically open in/g;
|
|
const html = find('.future-date-input .topic-status-info').html().trim();
|
|
assert.ok(regex.test(html));
|
|
});
|
|
|
|
futureDateInputSelector.expand().selectRowByValue('pick_date_and_time');
|
|
|
|
fillIn('.future-date-input .date-picker', '2099-11-24');
|
|
|
|
andThen(() => {
|
|
assert.equal(futureDateInputSelector.header().title(), 'Pick date and time');
|
|
assert.equal(futureDateInputSelector.header().value(), 'pick_date_and_time');
|
|
|
|
const regex = /will automatically open in/g;
|
|
const html = find('.future-date-input .topic-status-info').html().trim();
|
|
assert.ok(regex.test(html));
|
|
});
|
|
});
|
|
|
|
QUnit.test('schedule', assert => {
|
|
const timerType = selectKit('.select-kit.timer-type');
|
|
const categoryChooser = selectKit('.modal-body .category-chooser');
|
|
const futureDateInputSelector = selectKit('.future-date-input-selector');
|
|
|
|
visit('/t/internationalization-localization');
|
|
click('.toggle-admin-menu');
|
|
click('.topic-admin-status-update button');
|
|
|
|
timerType.expand().selectRowByValue('publish_to_category');
|
|
|
|
andThen(() => {
|
|
assert.equal(categoryChooser.header().title(), 'uncategorized');
|
|
assert.equal(categoryChooser.header().value(), null);
|
|
|
|
assert.equal(futureDateInputSelector.header().title(), 'Select a timeframe');
|
|
assert.equal(futureDateInputSelector.header().value(), null);
|
|
});
|
|
|
|
categoryChooser.expand().selectRowByValue('7');
|
|
|
|
futureDateInputSelector.expand().selectRowByValue('next_week');
|
|
|
|
andThen(() => {
|
|
assert.equal(futureDateInputSelector.header().title(), 'Next week');
|
|
assert.equal(futureDateInputSelector.header().value(), 'next_week');
|
|
|
|
const regex = /will be published to #dev/g;
|
|
const text = find('.future-date-input .topic-status-info').text().trim();
|
|
assert.ok(regex.test(text));
|
|
});
|
|
});
|
|
|
|
QUnit.test('auto delete', assert => {
|
|
const timerType = selectKit('.select-kit.timer-type');
|
|
const futureDateInputSelector = selectKit('.future-date-input-selector');
|
|
|
|
visit('/t/internationalization-localization');
|
|
click('.toggle-admin-menu');
|
|
click('.topic-admin-status-update button');
|
|
|
|
timerType.expand().selectRowByValue('delete');
|
|
|
|
andThen(() => {
|
|
assert.equal(futureDateInputSelector.header().title(), 'Select a timeframe');
|
|
assert.equal(futureDateInputSelector.header().value(), null);
|
|
});
|
|
|
|
futureDateInputSelector.expand().selectRowByValue('two_weeks');
|
|
|
|
andThen(() => {
|
|
assert.equal(futureDateInputSelector.header().title(), 'Two Weeks');
|
|
assert.equal(futureDateInputSelector.header().value(), 'two_weeks');
|
|
|
|
const regex = /will be automatically deleted/g;
|
|
const html = find('.future-date-input .topic-status-info').html().trim();
|
|
assert.ok(regex.test(html));
|
|
});
|
|
});
|