Fix push device registration
This commit is contained in:
@@ -158,6 +158,45 @@ public sealed class ApiSmokeTests : IDisposable
|
||||
Assert.Contains(chats, x => x.Title == "\u0410\u043d\u044e\u0442\u0430");
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public async Task PushRegistrationUsesSingleExistingUserWhenTokenUserIsStale()
|
||||
{
|
||||
using var factory = _factory.WithWebHostBuilder(builder =>
|
||||
{
|
||||
builder.ConfigureTestServices(services =>
|
||||
{
|
||||
services.RemoveAll<IHostedService>();
|
||||
});
|
||||
});
|
||||
using var client = factory.CreateClient();
|
||||
await LoginAsync(client);
|
||||
|
||||
Guid currentUserId;
|
||||
using (var scope = factory.Services.CreateScope())
|
||||
{
|
||||
var db = scope.ServiceProvider.GetRequiredService<QMaxDbContext>();
|
||||
db.UserSessions.RemoveRange(db.UserSessions);
|
||||
db.Users.RemoveRange(db.Users);
|
||||
var currentUser = new User { DisplayName = "QMAX Owner" };
|
||||
db.Users.Add(currentUser);
|
||||
await db.SaveChangesAsync();
|
||||
currentUserId = currentUser.Id;
|
||||
}
|
||||
|
||||
var response = await client.PostAsJsonAsync(
|
||||
"/api/push/devices",
|
||||
new { FirebaseToken = "stale-token-user-fcm-token", Platform = "android" });
|
||||
|
||||
await AssertStatusAsync(HttpStatusCode.NoContent, response);
|
||||
using (var scope = factory.Services.CreateScope())
|
||||
{
|
||||
var db = scope.ServiceProvider.GetRequiredService<QMaxDbContext>();
|
||||
var device = await db.PushDevices.SingleAsync();
|
||||
Assert.Equal(currentUserId, device.UserId);
|
||||
Assert.Equal("stale-token-user-fcm-token", device.FirebaseToken);
|
||||
}
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public async Task SyncMergesLateDiscoveredAttachmentsIntoExistingMessage()
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user