feat: complete phase 3 career workspace
This commit is contained in:
@@ -0,0 +1,26 @@
|
||||
using JobTrackerApi.Services;
|
||||
using Xunit;
|
||||
|
||||
namespace JobTrackerApi.Tests;
|
||||
|
||||
public sealed class AvatarStorageTests
|
||||
{
|
||||
[Fact]
|
||||
public async Task Store_resolve_delete_round_trip_keeps_image_out_of_database_value()
|
||||
{
|
||||
var root = Path.Combine(Path.GetTempPath(), "jobtracker-avatar-test-" + Guid.NewGuid().ToString("N"));
|
||||
try
|
||||
{
|
||||
var stored = await AvatarStorage.StoreAsync(root, "user-1", new byte[] { 1, 2, 3 }, "image/png", default);
|
||||
|
||||
Assert.StartsWith("file:", stored);
|
||||
Assert.Equal("data:image/png;base64,AQID", AvatarStorage.Resolve(stored));
|
||||
AvatarStorage.Delete(stored);
|
||||
Assert.Null(AvatarStorage.Resolve(stored));
|
||||
}
|
||||
finally
|
||||
{
|
||||
if (Directory.Exists(root)) Directory.Delete(root, recursive: true);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -106,6 +106,10 @@ public sealed class CareerProfileServiceTests
|
||||
Contact = { FullName = "Ada Lovelace", Email = "ada@example.com", Headline = "Engineer" },
|
||||
Summary = { "First", "Second" },
|
||||
Interests = { "Chess" },
|
||||
Awards = { "Engineering prize" },
|
||||
Publications = { "Reliable systems" },
|
||||
Organisations = { "ACM" },
|
||||
References = { "Available on request" },
|
||||
Jobs =
|
||||
{
|
||||
new StructuredCvJob { Title = "Senior Eng", Company = "Acme", Start = "Jan 2020", End = "Present", IsCurrent = true, Bullets = { "Built X" }, Skills = { "C#" } },
|
||||
@@ -130,6 +134,10 @@ public sealed class CareerProfileServiceTests
|
||||
Assert.Equal("Ada Lovelace", loaded.Contact.FullName);
|
||||
Assert.Equal(new[] { "First", "Second" }, loaded.Summary);
|
||||
Assert.Equal(new[] { "Chess" }, loaded.Interests);
|
||||
Assert.Equal(new[] { "Engineering prize" }, loaded.Awards);
|
||||
Assert.Equal(new[] { "Reliable systems" }, loaded.Publications);
|
||||
Assert.Equal(new[] { "ACM" }, loaded.Organisations);
|
||||
Assert.Equal(new[] { "Available on request" }, loaded.References);
|
||||
Assert.Equal(2, loaded.Jobs.Count);
|
||||
Assert.Equal("Senior Eng", loaded.Jobs[0].Title); // order preserved
|
||||
Assert.True(loaded.Jobs[0].IsCurrent);
|
||||
|
||||
Reference in New Issue
Block a user