1 module tests.management.setup; 2 3 public import std.array; 4 public import std.datetime; 5 public import std.uri; 6 7 public import fluentasserts.vibe.request; 8 public import fluentasserts.vibe.json; 9 public import fluent.asserts; 10 11 public import vibeauth.token; 12 public import vibeauth.users; 13 14 15 public import vibe.http.router; 16 public import vibe.data.json; 17 18 import vibeauth.router.management.routes; 19 import vibeauth.mail.base; 20 21 UserMemmoryCollection collection; 22 User user; 23 TestMailQueue mailQueue; 24 Token activationToken; 25 Token authToken; 26 UserManagementRoutes userManagement; 27 28 alias MailMessage = vibeauth.mail.base.Message; 29 30 class TestMailQueue : MailQueue 31 { 32 MailMessage[] messages; 33 34 this() { 35 super(EmailConfiguration()); 36 } 37 38 override void addMessage(MailMessage message) { 39 messages ~= message; 40 } 41 } 42 43 auto testRouter() { 44 auto router = new URLRouter(); 45 mailQueue = new TestMailQueue; 46 47 collection = new UserMemmoryCollection(["doStuff", "admin"]); 48 user = new User("user@gmail.com", "password"); 49 user.name = "John Doe"; 50 user.username = "test"; 51 user.id = 1; 52 53 collection.add(user); 54 activationToken = collection.createToken(user.email, Clock.currTime + 3600.seconds, [], "activation"); 55 authToken = collection.createToken(user.email, Clock.currTime + 3600.seconds, [], "webLogin"); 56 57 userManagement = new UserManagementRoutes(collection, mailQueue); 58 59 router.any("*", &userManagement.handler); 60 return router; 61 }