mirror of
https://github.com/discourse/discourse.git
synced 2025-05-22 06:41:25 +08:00
FEATURE: add more granular user option levels for email notifications (#7143)
Migrates email user options to a new data structure, where `email_always`, `email_direct` and `email_private_messages` are replace by * `email_messages_level`, with options: `always`, `only_when_away` and `never` (defaults to `always`) * `email_level`, with options: `always`, `only_when_away` and `never` (defaults to `only_when_away`)
This commit is contained in:
@ -265,8 +265,8 @@ describe User do
|
||||
expect(subject.email_tokens).to be_present
|
||||
expect(subject.user_stat).to be_present
|
||||
expect(subject.user_profile).to be_present
|
||||
expect(subject.user_option.email_private_messages).to eq(true)
|
||||
expect(subject.user_option.email_direct).to eq(true)
|
||||
expect(subject.user_option.email_messages_level).to eq(UserOption.email_level_types[:always])
|
||||
expect(subject.user_option.email_level).to eq(UserOption.email_level_types[:only_when_away])
|
||||
end
|
||||
end
|
||||
|
||||
@ -1461,10 +1461,9 @@ describe User do
|
||||
|
||||
before do
|
||||
SiteSetting.default_email_digest_frequency = 1440 # daily
|
||||
SiteSetting.default_email_personal_messages = false
|
||||
SiteSetting.default_email_direct = false
|
||||
SiteSetting.default_email_level = UserOption.email_level_types[:never]
|
||||
SiteSetting.default_email_messages_level = UserOption.email_level_types[:never]
|
||||
SiteSetting.default_email_mailing_list_mode = true
|
||||
SiteSetting.default_email_always = true
|
||||
|
||||
SiteSetting.default_other_new_topic_duration_minutes = -1 # not viewed
|
||||
SiteSetting.default_other_auto_track_topics_after_msecs = 0 # immediately
|
||||
@ -1485,16 +1484,15 @@ describe User do
|
||||
it "has overriden preferences" do
|
||||
user = Fabricate(:user)
|
||||
options = user.user_option
|
||||
expect(options.email_always).to eq(true)
|
||||
expect(options.mailing_list_mode).to eq(true)
|
||||
expect(options.digest_after_minutes).to eq(1440)
|
||||
expect(options.email_private_messages).to eq(false)
|
||||
expect(options.email_level).to eq(UserOption.email_level_types[:never])
|
||||
expect(options.email_messages_level).to eq(UserOption.email_level_types[:never])
|
||||
expect(options.external_links_in_new_tab).to eq(true)
|
||||
expect(options.enable_quoting).to eq(false)
|
||||
expect(options.dynamic_favicon).to eq(true)
|
||||
expect(options.disable_jump_reply).to eq(true)
|
||||
expect(options.automatically_unpin_topics).to eq(false)
|
||||
expect(options.email_direct).to eq(false)
|
||||
expect(options.new_topic_duration_minutes).to eq(-1)
|
||||
expect(options.auto_track_topics_after_msecs).to eq(0)
|
||||
expect(options.notification_level_when_replying).to eq(3)
|
||||
@ -1518,7 +1516,7 @@ describe User do
|
||||
|
||||
it "Creates a UserOption row when a user record is created and destroys once done" do
|
||||
user = Fabricate(:user)
|
||||
expect(user.user_option.email_always).to eq(false)
|
||||
expect(user.user_option.email_level).to eq(UserOption.email_level_types[:only_when_away])
|
||||
|
||||
user_id = user.id
|
||||
user.destroy!
|
||||
|
Reference in New Issue
Block a user