From 5268568d23d6243a24db9f0f40eaca53c375540f Mon Sep 17 00:00:00 2001 From: Martin Brennan Date: Mon, 14 Sep 2020 11:11:55 +1000 Subject: [PATCH] FEATURE: Remove user topic timers and migrate to bookmarks with reminders (#10474) This PR removes the user reminder topic timers, because that system has been supplanted and improved by bookmark reminders. The option is removed from the UI and all existing user reminder topic timers are migrated to bookmark reminders. Migration does this: * Get all topic_timers with status_type 5 (reminders) * Gets all bookmarks where the user ID and topic ID match * Loops through the found topic timers * If there is no bookmark for the OP of the topic, then we just create a bookmark with a reminder * If there is a bookmark for the OP of the topic and it does **not** have a reminder set, then just update it with the topic timer reminder * If there is a bookmark for the OP of the topic with a reminder then just discard the topic timer * Cancels all outstanding user reminder topic timers * **Trashes (not deletes) all user reminder topic timers** Notes: * For now I have left the user reminder topic timer job class in place; this is so the jobs can be cancelled in the migration. It and the specs will be deleted in the next PR. * At a later date I will write a migration to delete all trashed user topic timers. They are not deleted here in case there are data issues and they need to be recovered. * A future PR will change the UI of the topic timer modal to make it look more like the bookmark modal. --- .../app/components/edit-topic-timer-form.js | 4 +- .../app/components/topic-timer-info.js | 10 +-- .../app/controllers/edit-topic-timer.js | 25 +----- .../javascripts/discourse/app/routes/topic.js | 5 -- .../app/templates/modal/edit-topic-timer.hbs | 14 +--- .../discourse/app/templates/topic.hbs | 9 --- app/jobs/regular/topic_reminder.rb | 3 + app/models/topic.rb | 5 -- app/models/topic_timer.rb | 2 +- app/serializers/topic_view_serializer.rb | 10 --- .../web_hook_topic_view_serializer.rb | 1 - config/locales/client.en.yml | 2 - ...user_topic_timers_to_bookmark_reminders.rb | 79 +++++++++++++++++++ .../acceptance/poll-quote-test.js.es6 | 2 - spec/jobs/topic_reminder_spec.rb | 59 -------------- spec/models/topic_spec.rb | 46 ----------- spec/models/topic_timer_spec.rb | 35 -------- spec/requests/api/topics_spec.rb | 1 - .../acceptance/composer-actions-test.js | 1 - .../acceptance/topic-edit-timer-test.js | 9 --- test/javascripts/fixtures/poll.js | 1 - test/javascripts/fixtures/topic.js | 2 - 22 files changed, 91 insertions(+), 234 deletions(-) create mode 100644 db/migrate/20200819030609_migrate_user_topic_timers_to_bookmark_reminders.rb delete mode 100644 spec/jobs/topic_reminder_spec.rb diff --git a/app/assets/javascripts/discourse/app/components/edit-topic-timer-form.js b/app/assets/javascripts/discourse/app/components/edit-topic-timer-form.js index 9513308561b..ecacbdf95ea 100644 --- a/app/assets/javascripts/discourse/app/components/edit-topic-timer-form.js +++ b/app/assets/javascripts/discourse/app/components/edit-topic-timer-form.js @@ -6,7 +6,6 @@ import { PUBLISH_TO_CATEGORY_STATUS_TYPE, OPEN_STATUS_TYPE, DELETE_STATUS_TYPE, - REMINDER_TYPE, CLOSE_STATUS_TYPE, BUMP_TYPE, DELETE_REPLIES_TYPE, @@ -19,9 +18,8 @@ export default Component.extend({ autoDelete: equal("selection", DELETE_STATUS_TYPE), autoBump: equal("selection", BUMP_TYPE), publishToCategory: equal("selection", PUBLISH_TO_CATEGORY_STATUS_TYPE), - reminder: equal("selection", REMINDER_TYPE), autoDeleteReplies: equal("selection", DELETE_REPLIES_TYPE), - showTimeOnly: or("autoOpen", "autoDelete", "reminder", "autoBump"), + showTimeOnly: or("autoOpen", "autoDelete", "autoBump"), showFutureDateInput: or( "showTimeOnly", "publishToCategory", diff --git a/app/assets/javascripts/discourse/app/components/topic-timer-info.js b/app/assets/javascripts/discourse/app/components/topic-timer-info.js index c5e5da4d929..177b5d9d6e5 100644 --- a/app/assets/javascripts/discourse/app/components/topic-timer-info.js +++ b/app/assets/javascripts/discourse/app/components/topic-timer-info.js @@ -4,10 +4,7 @@ import { cancel, later } from "@ember/runloop"; import Component from "@ember/component"; import { iconHTML } from "discourse-common/lib/icon-library"; import Category from "discourse/models/category"; -import { - REMINDER_TYPE, - DELETE_REPLIES_TYPE, -} from "discourse/controllers/edit-topic-timer"; +import { DELETE_REPLIES_TYPE } from "discourse/controllers/edit-topic-timer"; import { isTesting } from "discourse-common/config/environment"; export default Component.extend({ @@ -20,9 +17,8 @@ export default Component.extend({ notice: null, showTopicTimer: null, - @discourseComputed("statusType") - canRemoveTimer(type) { - if (type === REMINDER_TYPE) return true; + @discourseComputed + canRemoveTimer() { return this.currentUser && this.currentUser.get("canManageTopic"); }, diff --git a/app/assets/javascripts/discourse/app/controllers/edit-topic-timer.js b/app/assets/javascripts/discourse/app/controllers/edit-topic-timer.js index f3d2b972fb6..784a6d07054 100644 --- a/app/assets/javascripts/discourse/app/controllers/edit-topic-timer.js +++ b/app/assets/javascripts/discourse/app/controllers/edit-topic-timer.js @@ -1,4 +1,5 @@ import I18n from "I18n"; +import { alias } from "@ember/object/computed"; import EmberObject, { setProperties } from "@ember/object"; import Controller from "@ember/controller"; import discourseComputed from "discourse-common/utils/decorators"; @@ -11,7 +12,6 @@ export const CLOSE_STATUS_TYPE = "close"; export const OPEN_STATUS_TYPE = "open"; export const PUBLISH_TO_CATEGORY_STATUS_TYPE = "publish_to_category"; export const DELETE_STATUS_TYPE = "delete"; -export const REMINDER_TYPE = "reminder"; export const BUMP_TYPE = "bump"; export const DELETE_REPLIES_TYPE = "delete_replies"; @@ -58,24 +58,7 @@ export default Controller.extend(ModalFunctionality, { return types; }, - @discourseComputed() - privateTimerTypes() { - return [{ id: REMINDER_TYPE, name: I18n.t("topic.reminder.title") }]; - }, - - @discourseComputed("isPublic", "publicTimerTypes", "privateTimerTypes") - selections(isPublic, publicTimerTypes, privateTimerTypes) { - return "true" === isPublic ? publicTimerTypes : privateTimerTypes; - }, - - @discourseComputed( - "isPublic", - "model.topic_timer", - "model.private_topic_timer" - ) - topicTimer(isPublic, publicTopicTimer, privateTopicTimer) { - return "true" === isPublic ? publicTopicTimer : privateTopicTimer; - }, + topicTimer: alias("model.topic_timer"), _setTimer(time, duration, statusType, basedOnLastPost, categoryId) { this.set("loading", true); @@ -100,9 +83,7 @@ export default Controller.extend(ModalFunctionality, { this.set("model.closed", result.closed); } else { - const topicTimer = - this.isPublic === "true" ? "topic_timer" : "private_topic_timer"; - this.set(`model.${topicTimer}`, EmberObject.create({})); + this.set("model.topic_timer", EmberObject.create({})); this.setProperties({ selection: null, diff --git a/app/assets/javascripts/discourse/app/routes/topic.js b/app/assets/javascripts/discourse/app/routes/topic.js index fa3e3168907..28d61612353 100644 --- a/app/assets/javascripts/discourse/app/routes/topic.js +++ b/app/assets/javascripts/discourse/app/routes/topic.js @@ -114,11 +114,6 @@ const TopicRoute = DiscourseRoute.extend({ model.set("topic_timer", {}); } - const privateTopicTimer = model.get("private_topic_timer"); - if (!privateTopicTimer) { - model.set("private_topic_timer", {}); - } - showModal("edit-topic-timer", { model }); this.controllerFor("modal").set("modalClass", "edit-topic-timer-modal"); }, diff --git a/app/assets/javascripts/discourse/app/templates/modal/edit-topic-timer.hbs b/app/assets/javascripts/discourse/app/templates/modal/edit-topic-timer.hbs index 7f6634297bc..cc3fffea505 100644 --- a/app/assets/javascripts/discourse/app/templates/modal/edit-topic-timer.hbs +++ b/app/assets/javascripts/discourse/app/templates/modal/edit-topic-timer.hbs @@ -1,20 +1,8 @@ {{#d-modal-body title="topic.topic_status_update.title" autoFocus="false"}} -
- - - -
- {{edit-topic-timer-form topic=model topicTimer=topicTimer - timerTypes=selections + timerTypes=publicTimerTypes updateTime=updateTime onChangeStatusType=(action "onChangeStatusType") onChangeInput=(action "onChangeInput") diff --git a/app/assets/javascripts/discourse/app/templates/topic.hbs b/app/assets/javascripts/discourse/app/templates/topic.hbs index f0715b2d3f3..af022006355 100644 --- a/app/assets/javascripts/discourse/app/templates/topic.hbs +++ b/app/assets/javascripts/discourse/app/templates/topic.hbs @@ -286,15 +286,6 @@ {{/if}} - {{#if model.private_topic_timer.execute_at}} - {{topic-timer-info - topicClosed=model.closed - statusType=model.private_topic_timer.status_type - executeAt=model.private_topic_timer.execute_at - duration=model.private_topic_timer.duration - removeTopicTimer=(action "removeTopicTimer" model.private_topic_timer.status_type "private_topic_timer")}} - {{/if}} - {{topic-timer-info topicClosed=model.closed statusType=model.topic_timer.status_type diff --git a/app/jobs/regular/topic_reminder.rb b/app/jobs/regular/topic_reminder.rb index a9eed2b36e6..e4b103d66d9 100644 --- a/app/jobs/regular/topic_reminder.rb +++ b/app/jobs/regular/topic_reminder.rb @@ -4,6 +4,9 @@ module Jobs class TopicReminder < ::Jobs::Base def execute(args) + # noop, TODO(martin 2021-03-11): Remove this after timers migrated and outstanding jobs cancelled + return + topic_timer = TopicTimer.find_by(id: args[:topic_timer_id]) topic = topic_timer&.topic diff --git a/app/models/topic.rb b/app/models/topic.rb index 598d434ea57..3e8c333c36c 100644 --- a/app/models/topic.rb +++ b/app/models/topic.rb @@ -554,7 +554,6 @@ class Topic < ActiveRecord::Base def reload(options = nil) @post_numbers = nil @public_topic_timer = nil - @private_topic_timer = nil @is_category_topic = nil super(options) end @@ -1309,10 +1308,6 @@ class Topic < ActiveRecord::Base @public_topic_timer ||= topic_timers.find_by(deleted_at: nil, public_type: true) end - def private_topic_timer(user) - @private_topic_Timer ||= topic_timers.find_by(deleted_at: nil, public_type: false, user_id: user.id) - end - def delete_topic_timer(status_type, by_user: Discourse.system_user) options = { status_type: status_type } options.merge!(user: by_user) unless TopicTimer.public_types[status_type] diff --git a/app/models/topic_timer.rb b/app/models/topic_timer.rb index 55f54d04cb7..89da22a24fa 100644 --- a/app/models/topic_timer.rb +++ b/app/models/topic_timer.rb @@ -156,7 +156,7 @@ class TopicTimer < ActiveRecord::Base end def schedule_auto_reminder_job(time) - Jobs.enqueue_at(time, :topic_reminder, topic_timer_id: id) + # noop, TODO(martin 2021-03-11): Remove this after timers migrated and outstanding jobs cancelled end end diff --git a/app/serializers/topic_view_serializer.rb b/app/serializers/topic_view_serializer.rb index 27cc97523ed..7c6bd0bbef9 100644 --- a/app/serializers/topic_view_serializer.rb +++ b/app/serializers/topic_view_serializer.rb @@ -64,7 +64,6 @@ class TopicViewSerializer < ApplicationSerializer :bookmark_reminder_at, :message_archived, :topic_timer, - :private_topic_timer, :unicode_title, :message_bus_last_id, :participant_count, @@ -202,15 +201,6 @@ class TopicViewSerializer < ApplicationSerializer TopicTimerSerializer.new(object.topic.public_topic_timer, root: false) end - def include_private_topic_timer? - scope.user - end - - def private_topic_timer - timer = object.topic.private_topic_timer(scope.user) - TopicTimerSerializer.new(timer, root: false) - end - def include_featured_link? SiteSetting.topic_featured_link_enabled end diff --git a/app/serializers/web_hook_topic_view_serializer.rb b/app/serializers/web_hook_topic_view_serializer.rb index 76dc3818834..849250bc1ca 100644 --- a/app/serializers/web_hook_topic_view_serializer.rb +++ b/app/serializers/web_hook_topic_view_serializer.rb @@ -18,7 +18,6 @@ class WebHookTopicViewSerializer < TopicViewSerializer current_post_number chunk_size topic_timer - private_topic_timer details image_url }.each do |attr| diff --git a/config/locales/client.en.yml b/config/locales/client.en.yml index e0c002e456b..e630d466b79 100644 --- a/config/locales/client.en.yml +++ b/config/locales/client.en.yml @@ -2312,8 +2312,6 @@ en: remove: "Remove Timer" publish_to: "Publish To:" when: "When:" - public_timer_types: Topic Timers - private_timer_types: User Topic Timers time_frame_required: Please select a time frame auto_update_input: none: "Select a timeframe" diff --git a/db/migrate/20200819030609_migrate_user_topic_timers_to_bookmark_reminders.rb b/db/migrate/20200819030609_migrate_user_topic_timers_to_bookmark_reminders.rb new file mode 100644 index 00000000000..2c9ddbc6b65 --- /dev/null +++ b/db/migrate/20200819030609_migrate_user_topic_timers_to_bookmark_reminders.rb @@ -0,0 +1,79 @@ +# frozen_string_literal: true + +class MigrateUserTopicTimersToBookmarkReminders < ActiveRecord::Migration[6.0] + def up + topic_timers_to_migrate = DB.query(<<~SQL, reminder_type: 5) + SELECT topic_timers.id, topic_timers.topic_id, topic_timers.user_id, execute_at, + posts.id AS first_post_id + FROM topic_timers + INNER JOIN topics ON topics.id = topic_timers.topic_id + INNER JOIN posts ON posts.topic_id = topics.id AND posts.post_number = 1 + WHERE topics.deleted_at IS NULL + AND topic_timers.deleted_at IS NULL + AND topic_timers.status_type = :reminder_type + SQL + + return if topic_timers_to_migrate.empty? + + topic_timer_tuples = topic_timers_to_migrate.map do |tt| + "(#{tt.user_id}, #{tt.topic_id})" + end.join(", ") + + existing_bookmarks = DB.query(<<~SQL) + SELECT bookmarks.id, reminder_at, reminder_type, + bookmarks.topic_id, post_id, bookmarks.user_id, posts.post_number + FROM bookmarks + INNER JOIN posts ON posts.id = bookmarks.post_id + WHERE (bookmarks.user_id, bookmarks.topic_id) IN (#{topic_timer_tuples}) + SQL + + new_bookmarks = [] + topic_timers_to_migrate.each do |tt| + bookmark = existing_bookmarks.find do |bm| + + # we only care about existing topic-level bookmarks here + # because topic timers are (funnily enough) topic-level + bm.topic_id == tt.topic_id && bm.user_id == tt.user_id && bm.post_number == 1 + end + + if !bookmark + # create one + now = Time.zone.now + new_bookmarks << "(#{tt.user_id}, #{tt.topic_id}, #{tt.first_post_id}, '#{tt.execute_at}', 6, '#{now}', '#{now}')" + else + if !bookmark.reminder_at + DB.exec( + "UPDATE bookmarks SET reminder_at = :reminder_at, reminder_type = 6 WHERE id = :bookmark_id", + reminder_at: tt.execute_at, + bookmark_id: bookmark.id + ) + end + + # if there is a bookmark with reminder already do nothing, + # we do not need to migrate the topic timer because it would + # cause a conflict + end + end + + DB.exec(<<~SQL) + INSERT INTO bookmarks(user_id, topic_id, post_id, reminder_at, reminder_type, created_at, updated_at) + VALUES #{new_bookmarks.join(",\n")} + ON CONFLICT DO NOTHING + SQL + + # TODO(2021-01-07): delete leftover trashed records + # trash these so the records are kept around for any possible data issues, + # they can be deleted in a few months + topic_timers_to_migrate_ids = topic_timers_to_migrate.map(&:id) + DB.exec( + "UPDATE topic_timers SET deleted_at = :deleted_at, deleted_by_id = :deleted_by WHERE ID IN (:ids)", + ids: topic_timers_to_migrate_ids, + deleted_at: Time.zone.now, + deleted_by: Discourse.system_user + ) + end + + def down + raise ActiveRecord::IrreversibleMigration + end +end diff --git a/plugins/poll/test/javascripts/acceptance/poll-quote-test.js.es6 b/plugins/poll/test/javascripts/acceptance/poll-quote-test.js.es6 index e30cde370eb..9105e5e9766 100644 --- a/plugins/poll/test/javascripts/acceptance/poll-quote-test.js.es6 +++ b/plugins/poll/test/javascripts/acceptance/poll-quote-test.js.es6 @@ -202,7 +202,6 @@ acceptance("Poll quote", { chunk_size: 20, bookmarked: false, topic_timer: null, - private_topic_timer: null, message_bus_last_id: 1, participant_count: 1, queued_posts_count: 0, @@ -627,7 +626,6 @@ acceptance("Poll quote", { chunk_size: 20, bookmarked: false, topic_timer: null, - private_topic_timer: null, message_bus_last_id: 2, participant_count: 1, queued_posts_count: 0, diff --git a/spec/jobs/topic_reminder_spec.rb b/spec/jobs/topic_reminder_spec.rb deleted file mode 100644 index a0c331a889a..00000000000 --- a/spec/jobs/topic_reminder_spec.rb +++ /dev/null @@ -1,59 +0,0 @@ -# frozen_string_literal: true - -require 'rails_helper' - -describe Jobs::TopicReminder do - fab!(:admin) { Fabricate(:admin) } - - fab!(:topic) do - Fabricate(:topic_timer, - user: admin, - status_type: TopicTimer.types[:reminder] - ).topic - end - - it "should be able to create a reminder" do - topic_timer = topic.topic_timers.first - freeze_time 1.day.from_now - - expect { - described_class.new.execute(topic_timer_id: topic_timer.id) - }.to change { Notification.count }.by(1) - expect(admin.notifications.where(notification_type: Notification.types[:topic_reminder]).first&.topic_id).to eq(topic.id) - expect(TopicTimer.where(id: topic_timer.id).first).to be_nil - end - - it "does nothing if it was trashed before the scheduled time" do - topic_timer = topic.topic_timers.first - topic_timer.trash!(Discourse.system_user) - - freeze_time(1.day.from_now) - - expect { - described_class.new.execute(topic_timer_id: topic_timer.id) - }.to_not change { Notification.count } - end - - it "does nothing if job runs too early" do - topic_timer = topic.topic_timers.first - topic_timer.update_attribute(:execute_at, 8.hours.from_now) - - freeze_time(6.hours.from_now) - - expect { - described_class.new.execute(topic_timer_id: topic_timer.id) - }.to_not change { Notification.count } - end - - it "does nothing if topic was deleted" do - topic_timer = topic.topic_timers.first - topic.trash! - - freeze_time(1.day.from_now) - - expect { - described_class.new.execute(topic_timer_id: topic_timer.id) - }.to_not change { Notification.count } - end - -end diff --git a/spec/models/topic_spec.rb b/spec/models/topic_spec.rb index 36b6c1ec611..17346ce41e8 100644 --- a/spec/models/topic_spec.rb +++ b/spec/models/topic_spec.rb @@ -1711,20 +1711,6 @@ describe Topic do end end - describe '#private_topic_timer' do - let(:topic_timer) do - Fabricate(:topic_timer, - public_type: false, - user: user, - status_type: TopicTimer.private_types[:reminder] - ) - end - - it 'should return the right record' do - expect(topic_timer.topic.private_topic_timer(user)).to eq(topic_timer) - end - end - describe '#set_or_create_timer' do let(:topic) { Fabricate.build(:topic) } @@ -1875,38 +1861,6 @@ describe Topic do expect(topic.reload.closed).to eq(true) end end - - describe "private status type" do - fab!(:topic) { Fabricate(:topic) } - let(:reminder) { Fabricate(:topic_timer, user: admin, topic: topic, status_type: TopicTimer.types[:reminder]) } - fab!(:other_admin) { Fabricate(:admin) } - - it "lets two users have their own record" do - reminder - expect { - topic.set_or_create_timer(TopicTimer.types[:reminder], 2, by_user: other_admin) - }.to change { TopicTimer.count }.by(1) - end - - it 'should not be override when setting a public topic timer' do - reminder - - expect do - topic.set_or_create_timer(TopicTimer.types[:close], 3, by_user: reminder.user) - end.to change { TopicTimer.count }.by(1) - end - - it "can update a user's existing record" do - freeze_time now - - reminder - expect { - topic.set_or_create_timer(TopicTimer.types[:reminder], 11, by_user: admin) - }.to_not change { TopicTimer.count } - reminder.reload - expect(reminder.execute_at).to eq_time(11.hours.from_now) - end - end end describe '.for_digest' do diff --git a/spec/models/topic_timer_spec.rb b/spec/models/topic_timer_spec.rb index 4d1e09c819a..dbb540950a7 100644 --- a/spec/models/topic_timer_spec.rb +++ b/spec/models/topic_timer_spec.rb @@ -18,23 +18,6 @@ RSpec.describe TopicTimer, type: :model do expect { Fabricate(:topic_timer, topic: topic) } .to raise_error(ActiveRecord::RecordInvalid) end - - it 'should ensure that only one active private topic timer exists per user' do - Fabricate(:topic_timer, topic: topic, user: admin, status_type: TopicTimer.types[:reminder]) - - expect { Fabricate(:topic_timer, topic: topic, user: admin, status_type: TopicTimer.types[:reminder]) } - .to raise_error(ActiveRecord::RecordInvalid) - end - - it 'should allow users to have their own private topic timer' do - expect do - Fabricate(:topic_timer, - topic: topic, - user: Fabricate(:admin), - status_type: TopicTimer.types[:reminder] - ) - end.to_not raise_error - end end describe '#execute_at' do @@ -274,23 +257,5 @@ RSpec.describe TopicTimer, type: :model do state: false })).to eq(true) end - - it "should enqueue remind me jobs that have been missed" do - reminder = Fabricate(:topic_timer, - status_type: described_class.types[:reminder], - execute_at: Time.zone.now - 1.hour, - created_at: Time.zone.now - 2.hour - ) - - # creating topic timers already enqueues jobs - # let's delete them to test ensure_consistency! - Sidekiq::Worker.clear_all - - expect { described_class.ensure_consistency! } - .to change { Jobs::TopicReminder.jobs.count }.by(1) - - job_args = Jobs::TopicReminder.jobs.first["args"].first - expect(job_args["topic_timer_id"]).to eq(reminder.id) - end end end diff --git a/spec/requests/api/topics_spec.rb b/spec/requests/api/topics_spec.rb index 6dac194b42a..bd3d5f280a6 100644 --- a/spec/requests/api/topics_spec.rb +++ b/spec/requests/api/topics_spec.rb @@ -309,7 +309,6 @@ describe 'posts' do chunk_size: { type: :integer }, bookmarked: { type: :boolean }, topic_timer: { type: :string, nullable: true }, - private_topic_timer: { type: :string, nullable: true }, message_bus_last_id: { type: :integer }, participant_count: { type: :integer }, show_read_indicator: { type: :boolean }, diff --git a/test/javascripts/acceptance/composer-actions-test.js b/test/javascripts/acceptance/composer-actions-test.js index 317acde5e89..821665371a2 100644 --- a/test/javascripts/acceptance/composer-actions-test.js +++ b/test/javascripts/acceptance/composer-actions-test.js @@ -295,7 +295,6 @@ QUnit.test("reply_as_new_group_message", async (assert) => { bookmarked: false, message_archived: false, topic_timer: null, - private_topic_timer: null, message_bus_last_id: 5, participant_count: 1, pm_with_non_human_user: false, diff --git a/test/javascripts/acceptance/topic-edit-timer-test.js b/test/javascripts/acceptance/topic-edit-timer-test.js index f20caf47c58..6a2c0912272 100644 --- a/test/javascripts/acceptance/topic-edit-timer-test.js +++ b/test/javascripts/acceptance/topic-edit-timer-test.js @@ -21,7 +21,6 @@ acceptance("Topic - Edit timer", { QUnit.test("default", async (assert) => { updateCurrentUser({ moderator: true }); - const timerType = selectKit(".select-kit.timer-type"); const futureDateInputSelector = selectKit(".future-date-input-selector"); await visit("/t/internationalization-localization"); @@ -30,14 +29,6 @@ QUnit.test("default", async (assert) => { assert.equal(futureDateInputSelector.header().label(), "Select a timeframe"); assert.equal(futureDateInputSelector.header().value(), null); - - await click("#private-topic-timer"); - - assert.equal(timerType.header().label(), "Remind Me"); - assert.equal(timerType.header().value(), "reminder"); - - assert.equal(futureDateInputSelector.header().label(), "Select a timeframe"); - assert.equal(futureDateInputSelector.header().value(), null); }); QUnit.test("autoclose - specific time", async (assert) => { diff --git a/test/javascripts/fixtures/poll.js b/test/javascripts/fixtures/poll.js index 71eacf3729a..674c711a4b5 100644 --- a/test/javascripts/fixtures/poll.js +++ b/test/javascripts/fixtures/poll.js @@ -691,7 +691,6 @@ export default { chunk_size: 20, bookmarked: false, topic_timer: null, - private_topic_timer: null, message_bus_last_id: 1, participant_count: 1, show_read_indicator: false, diff --git a/test/javascripts/fixtures/topic.js b/test/javascripts/fixtures/topic.js index c4ba2e604f0..beddf91d948 100644 --- a/test/javascripts/fixtures/topic.js +++ b/test/javascripts/fixtures/topic.js @@ -5071,7 +5071,6 @@ export default { bookmarked: false, message_archived: false, topic_timer: null, - private_topic_timer: null, message_bus_last_id: 7, participant_count: 2, pm_with_non_human_user: false @@ -5352,7 +5351,6 @@ export default { chunk_size: 20, bookmarked: false, topic_timer: null, - private_topic_timer: null, message_bus_last_id: 4, participant_count: 2, show_read_indicator: false,