FEATURE: only redirect new users to top page for a limited period

That period is defined by the `redirect_new_users_to_top_page_duration`
site setting and defaults to 7 days.
This commit is contained in:
Régis Hanol
2014-03-05 22:11:01 +01:00
parent b0f3061113
commit ca12ea42a7
4 changed files with 37 additions and 15 deletions

View File

@ -56,11 +56,12 @@ test("homepage when top is enabled and not enough topics", function() {
});
test("homepage when top is enabled and has enough topics", function() {
var newUser = Discourse.User.create({ trust_level: 0, last_seen_at: moment() }),
oldUser = Discourse.User.create({ trust_level: 1, last_seen_at: moment() }),
var newUser = Discourse.User.create({ trust_level: 0, last_seen_at: moment(), created_at: moment().subtract("day", 6) }),
oldUser = Discourse.User.create({ trust_level: 1, last_seen_at: moment(), created_at: moment().subtract("month", 2) }),
defaultHomepage = Discourse.Utilities.defaultHomepage();
Discourse.SiteSettings.top_menu = "latest|top";
Discourse.SiteSettings.redirect_new_users_to_top_page_duration = 7;
Discourse.Site.currentProp("has_enough_topic_to_redirect_to_top_page", true);
equal(newUser.get("homepage"), "top", "new user's homepage is top when top is enabled");
@ -70,6 +71,17 @@ test("homepage when top is enabled and has enough topics", function() {
equal(oldUser.get("homepage"), "top", "long-time-no-see old user's homepage is top when top is enabled");
});
test("new user's homepage when top is enabled, there's enough topics and duration is over", function() {
var newUser = Discourse.User.create({ trust_level: 0, last_seen_at: moment(), created_at: moment().subtract("month", 1) }),
defaultHomepage = Discourse.Utilities.defaultHomepage();
Discourse.SiteSettings.top_menu = "latest|top";
Discourse.SiteSettings.redirect_new_users_to_top_page_duration = 7;
Discourse.Site.currentProp("has_enough_topic_to_redirect_to_top_page", true);
equal(newUser.get("homepage"), defaultHomepage, "new user's homepage is default when redirect duration is over");
});
asyncTestDiscourse("findByUsername", function() {
expect(3);