public async Task Value_display_and_update_are_in_right_order() { var kernel = CreateKernel(); await kernel.SendAsync(new SubmitCode("var d = display(b(\"hello\")); d.Update(b(\"world\"));")); var formatted = KernelEvents .OrderBy(e => e.Timestamp) .ValuesOnly() .OfType <ValueProduced>() .SelectMany(v => v.FormattedValues).ToList(); var firstValue = formatted.Select((v, i) => new { v, i }).First(e => e.v.MimeType == "text/html" && e.v.Value.ToString() .Contains("<b>hello</b>")).i; var updatedValue = formatted.Select((v, i) => new { v, i }).First(e => e.v.MimeType == "text/html" && e.v.Value.ToString() .Contains("<b>world</b>")).i; updatedValue .Should() .BeGreaterOrEqualTo(firstValue); }
public async Task Displayed_value_can_be_updated(Language language) { var kernel = CreateKernel(language); var submission = language switch { Language.CSharp => "var d = display(b(\"hello\")); d.Update(b(\"world\"));", Language.FSharp => "let d = display(b.innerHTML(\"hello\"))\nd.Update(b.innerHTML(\"world\"))", }; await kernel.SendAsync(new SubmitCode(submission)); KernelEvents .OrderBy(e => e.Timestamp) .ValuesOnly() .OfType <DisplayedValueProduced>() .SelectMany(v => v.FormattedValues) .Should() .ContainSingle(v => v.MimeType == "text/html" && v.Value.ToString().Contains("<b>hello</b>")); KernelEvents .OrderBy(e => e.Timestamp) .ValuesOnly() .OfType <DisplayedValueUpdated>() .SelectMany(v => v.FormattedValues) .Should() .ContainSingle(v => v.MimeType == "text/html" && v.Value.ToString().Contains("<b>world</b>")); }
public async Task Displayed_value_can_be_updated() { var kernel = CreateKernel(); await kernel.SendAsync(new SubmitCode("var d = display(b(\"hello\")); d.Update(b(\"world\"));")); KernelEvents .OrderBy(e => e.Timestamp) .ValuesOnly() .OfType <DisplayedValueProduced>() .SelectMany(v => v.FormattedValues) .Should() .ContainSingle(v => v.MimeType == "text/html" && v.Value.ToString().Contains("<b>hello</b>")); KernelEvents .OrderBy(e => e.Timestamp) .ValuesOnly() .OfType <DisplayedValueUpdated>() .SelectMany(v => v.FormattedValues) .Should() .ContainSingle(v => v.MimeType == "text/html" && v.Value.ToString().Contains("<b>world</b>")); }
public async Task Value_display_and_update_are_in_right_order() { var kernel = CreateKernel(); await kernel.SendAsync(new SubmitCode("var d = display(b(\"hello\")); d.Update(b(\"world\"));")); var valueEvents = KernelEvents .OrderBy(e => e.Timestamp) .Where(e => e.Value is DisplayedValueProduced || e.Value is DisplayedValueUpdated) .Select(e => e.Value) .ToList(); valueEvents.First().Should().BeOfType <DisplayedValueProduced>(); valueEvents.Last().Should().BeOfType <DisplayedValueUpdated>(); }
public async Task Value_display_and_update_are_in_right_order(Language language) { var kernel = CreateKernel(language); var submission = language switch { Language.CSharp => "var d = display(b(\"hello\")); d.Update(b(\"world\"));", Language.FSharp => "let d = display(b.innerHTML(\"hello\"))\nd.Update(b.innerHTML(\"world\"))", }; await kernel.SendAsync(new SubmitCode(submission)); var valueEvents = KernelEvents .OrderBy(e => e.Timestamp) .Where(e => e.Value is DisplayedValueProduced || e.Value is DisplayedValueUpdated) .Select(e => e.Value) .ToList(); valueEvents.First().Should().BeOfType <DisplayedValueProduced>(); valueEvents.Last().Should().BeOfType <DisplayedValueUpdated>(); }