1
0
mirror of https://github.com/bitwarden/server synced 2025-12-18 01:03:17 +00:00

Use a header to track seeded data. This has benefits client side in simplicity and allows us to track entities added during a test, as long as they include the play id header.

This commit is contained in:
Matt Gibson
2025-11-10 18:17:41 -08:00
parent 0b22af53da
commit f2116734a2
20 changed files with 125 additions and 148 deletions

View File

@@ -1,10 +1,10 @@
using System.ComponentModel.DataAnnotations;
using Bit.Infrastructure.EntityFramework.Repositories;
using Bit.Core.Repositories;
using Bit.Seeder.Factories;
namespace Bit.Seeder.Scenes;
public class SingleUserScene(DatabaseContext db, UserSeeder userSeeder) : IScene<SingleUserScene.Request>
public class SingleUserScene(UserSeeder userSeeder, IUserRepository userRepository) : IScene<SingleUserScene.Request>
{
public class Request
{
@@ -14,12 +14,11 @@ public class SingleUserScene(DatabaseContext db, UserSeeder userSeeder) : IScene
public bool Premium { get; set; } = false;
}
public SceneResult Seed(Request request)
public async Task<SceneResult> SeedAsync(Request request)
{
var user = userSeeder.CreateUser(request.Email, request.EmailVerified, request.Premium);
db.Add(user);
db.SaveChanges();
await userRepository.CreateAsync(user);
return new SceneResult(mangleMap: userSeeder.GetMangleMap(user, new UserData
{
@@ -31,9 +30,6 @@ public class SingleUserScene(DatabaseContext db, UserSeeder userSeeder) : IScene
ApiKey = user.ApiKey,
Kdf = user.Kdf,
KdfIterations = user.KdfIterations,
}), trackedEntities: new Dictionary<string, List<Guid>>
{
["User"] = [user.Id]
});
}));
}
}