Skip to content

Commit

Permalink
#84 - подправил тесты
Browse files Browse the repository at this point in the history
  • Loading branch information
Stepami committed Aug 12, 2024
1 parent 26191f0 commit 26bd76f
Show file tree
Hide file tree
Showing 3 changed files with 19 additions and 9 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -6,8 +6,10 @@ namespace HydraScript.IntegrationTests.ErrorPrograms;

public class VariableInitializationTests(
TestHostFixture fixture,
ITestOutputHelper testOutputHelper) : IClassFixture<TestHostFixture>
ITestOutputHelper testOutputHelper) : IClassFixture<TestHostFixture>, IDisposable
{
private readonly StringWriter _writer = new();

[Fact]
public void VariableWithoutTypeDeclared_AccessedBeforeInitialization_ExitCodeHydraScriptError()
{
Expand All @@ -21,13 +23,14 @@ function f() {
""";
var runner = fixture.GetRunner(
testOutputHelper,
_writer,
configureTestServices: services => services.SetupInMemoryScript(script));
var code = runner.Invoke(fixture.InMemoryScript);
code.Should().Be(ExitCodes.HydraScriptError);
var output = fixture.Writer.ToString();
var output = _writer.ToString().Trim();
output.Should().Be("(3, 11)-(3, 12) Cannot access 'x' before initialization");
}

[Fact]
public void TypedVariableDeclared_AccessedBeforeInitialization_ExitCodeHydraScriptError()
{
Expand All @@ -41,10 +44,17 @@ function f() {
""";
var runner = fixture.GetRunner(
testOutputHelper,
_writer,
configureTestServices: services => services.SetupInMemoryScript(script));
var code = runner.Invoke(fixture.InMemoryScript);
code.Should().Be(ExitCodes.HydraScriptError);
var output = fixture.Writer.ToString();
var output = _writer.ToString().Trim();
output.Should().Be("(3, 11)-(3, 12) Cannot access 'x' before initialization");
}

public void Dispose()
{
_writer.Dispose();
fixture.Dispose();
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,6 @@ public void Invoke_NoError_ReturnCodeIsZero(string fileName)
{
var runner = fixture.GetRunner(testOutputHelper);
var code = runner.Invoke([$"Samples/{fileName}"]);
testOutputHelper.WriteLine(fixture.Writer.ToString());
code.Should().Be(ExitCodes.Success);
}

Expand Down
9 changes: 5 additions & 4 deletions tests/HydraScript.IntegrationTests/TestHostFixture.cs
Original file line number Diff line number Diff line change
Expand Up @@ -10,12 +10,11 @@ namespace HydraScript.IntegrationTests;

public class TestHostFixture : IDisposable
{
public readonly TextWriter Writer = new StringWriter();

public readonly string[] InMemoryScript = ["file.js"];

public Parser GetRunner(
ITestOutputHelper testOutputHelper,
TextWriter? writer = null,
Action<IServiceCollection>? configureTestServices = null) =>
Program.GetRunner(configureHost: builder => builder
.ConfigureLogging(x =>
Expand All @@ -31,11 +30,13 @@ public Parser GetRunner(
.AddDomain()
.AddApplication()
.AddInfrastructure(dump: false, fileInfo);
services.AddSingleton(Writer);
services.AddSingleton(writer ?? TextWriter.Null);
configureTestServices?.Invoke(services);
})
.UseCommandHandler<ExecuteCommand, ExecuteCommandHandler>(),
useDefault: false);

public void Dispose() => Writer.Dispose();
public void Dispose()
{
}
}

0 comments on commit 26bd76f

Please sign in to comment.