diff options
author | Bjørn Christian Seime <bjorncs@vespa.ai> | 2023-10-25 09:45:56 +0200 |
---|---|---|
committer | Bjørn Christian Seime <bjorncs@vespa.ai> | 2023-10-25 09:45:56 +0200 |
commit | b18f4727e5c4523cd8f953b48a126bf8e9c2ad99 (patch) | |
tree | 320257acc0d2885da5eae15ab6ed572484058eb2 | |
parent | 8530db7c170861a3cec1b03e44ebdb7864845b1c (diff) |
Use markdown in trial notification
2 files changed, 22 insertions, 10 deletions
diff --git a/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/maintenance/CloudTrialExpirer.java b/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/maintenance/CloudTrialExpirer.java index bdec74dc865..6ec83921dd3 100644 --- a/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/maintenance/CloudTrialExpirer.java +++ b/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/maintenance/CloudTrialExpirer.java @@ -151,31 +151,36 @@ public class CloudTrialExpirer extends ControllerMaintainer { } private void notifySignup(Tenant tenant) { - queueNotification(tenant, "Welcome to Vespa Cloud", "Welcome to Vespa Cloud", + var consoleMsg = "Welcome to Vespa Cloud trial! [Manage plan](%s)".formatted(billingUrl(tenant)); + queueNotification(tenant, consoleMsg, "Welcome to Vespa Cloud", "Welcome to Vespa Cloud! We hope you will enjoy your trial. " + "Please reach out to us if you have any questions or feedback."); } private void notifyMidCheckIn(Tenant tenant) { - queueNotification(tenant, "How is your Vespa Cloud trial going?", "How is your Vespa Cloud trial going?", + var consoleMsg = "You're halfway through the *14 day* trial period. [Manage plan](%s)".formatted(billingUrl(tenant)); + queueNotification(tenant, consoleMsg, "How is your Vespa Cloud trial going?", "How is your Vespa Cloud trial going? " + "Please reach out to us if you have any questions or feedback."); } private void notifyExpiresSoon(Tenant tenant) { - queueNotification(tenant, "Your Vespa Cloud trial expires in 2 days", "Your Vespa Cloud trial expires in 2 days", + var consoleMsg = "Your Vespa Cloud trial expires in *2* days. [Manage plan](%s)".formatted(billingUrl(tenant)); + queueNotification(tenant, consoleMsg, "Your Vespa Cloud trial expires in 2 days", "Your Vespa Cloud trial expires in 2 days. " + "Please reach out to us if you have any questions or feedback."); } private void notifyExpiresImmediately(Tenant tenant) { - queueNotification(tenant, "Your Vespa Cloud trial expires tomorrow", "Your Vespa Cloud trial expires tomorrow", + var consoleMsg = "Your Vespa Cloud trial expires *tomorrow*. [Manage plan](%s)".formatted(billingUrl(tenant)); + queueNotification(tenant, consoleMsg, "Your Vespa Cloud trial expires tomorrow", "Your Vespa Cloud trial expires tomorrow. " + "Please reach out to us if you have any questions or feedback."); } private void notifyExpired(Tenant tenant) { - queueNotification(tenant, "Your Vespa Cloud trial has expired", "Your Vespa Cloud trial has expired", + var consoleMsg = "Your Vespa Cloud trial has expired. [Upgrade plan](%s)".formatted(billingUrl(tenant)); + queueNotification(tenant, consoleMsg, "Your Vespa Cloud trial has expired", "Your Vespa Cloud trial has expired. " + "Please reach out to us if you have any questions or feedback."); } @@ -195,6 +200,8 @@ public class CloudTrialExpirer extends ControllerMaintainer { source, Notification.Type.account, Notification.Level.info, consoleMsg, List.of(), mail); } + private String billingUrl(Tenant t) { return controller().serviceRegistry().consoleUrls().tenantBilling(t.name()); } + private static TrialNotifications.Status updatedStatus(Tenant t, Instant i, TrialNotifications.State s) { return new TrialNotifications.Status(t.name(), s, i); } diff --git a/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/maintenance/CloudTrialExpirerTest.java b/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/maintenance/CloudTrialExpirerTest.java index 07ce2e415a7..4abfb90b436 100644 --- a/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/maintenance/CloudTrialExpirerTest.java +++ b/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/maintenance/CloudTrialExpirerTest.java @@ -110,27 +110,32 @@ public class CloudTrialExpirerTest { .withBooleanFlag(Flags.CLOUD_TRIAL_NOTIFICATIONS.id(), true); registerTenant(tenant.value(), "trial", Duration.ZERO); assertEquals(0.0, expirer.maintain()); - assertEquals("Welcome to Vespa Cloud", lastAccountLevelNotificationTitle(tenant)); + var expected = "Welcome to Vespa Cloud trial! [Manage plan](https://console.tld/tenant/trial-tenant/account/billing)"; + assertEquals(expected, lastAccountLevelNotificationTitle(tenant)); assertLastEmailEquals(mailer, "welcome.html"); + expected = "You're halfway through the *14 day* trial period. [Manage plan](https://console.tld/tenant/trial-tenant/account/billing)"; clock.advance(Duration.ofDays(7)); assertEquals(0.0, expirer.maintain()); - assertEquals("How is your Vespa Cloud trial going?", lastAccountLevelNotificationTitle(tenant)); + assertEquals(expected, lastAccountLevelNotificationTitle(tenant)); assertLastEmailEquals(mailer, "trial-reminder.html"); + expected = "Your Vespa Cloud trial expires in *2* days. [Manage plan](https://console.tld/tenant/trial-tenant/account/billing)"; clock.advance(Duration.ofDays(5)); assertEquals(0.0, expirer.maintain()); - assertEquals("Your Vespa Cloud trial expires in 2 days", lastAccountLevelNotificationTitle(tenant)); + assertEquals(expected, lastAccountLevelNotificationTitle(tenant)); assertLastEmailEquals(mailer, "trial-expiring-soon.html"); + expected = "Your Vespa Cloud trial expires *tomorrow*. [Manage plan](https://console.tld/tenant/trial-tenant/account/billing)"; clock.advance(Duration.ofDays(1)); assertEquals(0.0, expirer.maintain()); - assertEquals("Your Vespa Cloud trial expires tomorrow", lastAccountLevelNotificationTitle(tenant)); + assertEquals(expected, lastAccountLevelNotificationTitle(tenant)); assertLastEmailEquals(mailer, "trial-expiring-immediately.html"); + expected = "Your Vespa Cloud trial has expired. [Upgrade plan](https://console.tld/tenant/trial-tenant/account/billing)"; clock.advance(Duration.ofDays(2)); assertEquals(0.0, expirer.maintain()); - assertEquals("Your Vespa Cloud trial has expired", lastAccountLevelNotificationTitle(tenant)); + assertEquals(expected, lastAccountLevelNotificationTitle(tenant)); assertLastEmailEquals(mailer, "trial-expired.html"); } |