basic tests for a wider variety of files
Some checks failed
Create tag and build when new code gets to main / BumpTag (push) Successful in 20s
Create tag and build when new code gets to main / Test (push) Failing after 7m29s
Create tag and build when new code gets to main / Export (push) Successful in 8m18s

This commit is contained in:
2026-02-20 16:58:17 +01:00
parent 4474ba22fa
commit 9207295a99
28 changed files with 545 additions and 140 deletions

View File

@@ -0,0 +1,78 @@
using Godot;
using GdUnit4;
using static GdUnit4.Assertions;
using Movementtests.interfaces;
using Movementtests.systems.damage;
namespace Movementtests.tests;
[TestSuite, RequireGodotRuntime]
public class EnemyUnitTest
{
[TestCase]
public void ComputeDamage_NoComponent_ReturnsZero()
{
var enemy = new Enemy();
var input = new DamageRecord(Vector3.Zero, new RDamage(10.0f, EDamageTypes.Normal));
var result = enemy.ComputeDamage(input);
AssertFloat(result.Damage.DamageDealt).IsEqual(0.0f);
}
[TestCase]
public void TakeDamage_WithCDamageable_AggregatesDamage()
{
var enemy = new Enemy();
var cDamage = new CDamageable();
cDamage.DamageModifiers = new[]
{
new RDamageModifier(EDamageTypes.Normal, 1.0f),
new RDamageModifier(EDamageTypes.Normal, 2.0f)
};
enemy.CDamageable = cDamage;
var input = new DamageRecord(Vector3.Zero, new RDamage(10.0f, EDamageTypes.Normal));
var result = enemy.TakeDamage(input);
AssertFloat(result.Damage.DamageDealt).IsEqual(30.0f);
}
[TestCase]
public void ReduceHealth_WithCHealth_Decreases()
{
var enemy = new Enemy();
var health = new CHealth { RHealth = new RHealth(100.0f), CurrentHealth = 100.0f };
enemy.CHealth = health;
var input = new DamageRecord(Vector3.Zero, new RDamage(25.0f, EDamageTypes.Normal));
var record = enemy.ReduceHealth(enemy, input);
AssertFloat(health.CurrentHealth).IsEqual(75.0f);
AssertFloat(record.CurrentHealth).IsEqual(75.0f);
}
[TestCase]
public void Knockback_Register_And_Compute()
{
var enemy = new Enemy();
var cKnock = new CKnockback { RKnockback = new RKnockback(1.0f) };
enemy.CKnockback = cKnock;
enemy.GlobalPosition = Vector3.Zero;
cKnock.GlobalPosition = Vector3.Zero;
var dmg = new DamageRecord(new Vector3(5, 0, 0), new RDamage(0, EDamageTypes.Normal));
var krec = new KnockbackRecord(dmg, 2.0f);
enemy.RegisterKnockback(krec);
var k = enemy.ComputeKnockback();
AssertVector(k).IsEqual(new Vector3(-2, 0, 0));
}
[TestCase]
public void Unstun_ResetsFlag()
{
var enemy = new Enemy();
enemy.IsStunned = true;
enemy.Unstun();
AssertBool(enemy.IsStunned).IsFalse();
}
}

View File

@@ -0,0 +1 @@
uid://cojxgcs6xqqoq