============================================================================= ERROR HANDLING TESTS =============================================================================
(t *testing.T)
| 496 | // ============================================================================= |
| 497 | |
| 498 | func TestModuleBuilder_ErrorHandling(t *testing.T) { |
| 499 | useStableOwnerHooksForLegacySubtests(t) |
| 500 | |
| 501 | rt := NewRuntime() |
| 502 | defer rt.Close() |
| 503 | ctx := rt.NewContext() |
| 504 | defer ctx.Close() |
| 505 | |
| 506 | t.Run("EmptyModule", func(t *testing.T) { |
| 507 | module := NewModuleBuilder("empty") |
| 508 | err := module.Build(ctx) |
| 509 | require.Error(t, err) |
| 510 | }) |
| 511 | |
| 512 | t.Run("EmptyModuleName", func(t *testing.T) { |
| 513 | module := NewModuleBuilder("") |
| 514 | err := module.Build(ctx) |
| 515 | require.Error(t, err) |
| 516 | require.Contains(t, err.Error(), "module name cannot be empty") |
| 517 | }) |
| 518 | |
| 519 | t.Run("EmptyExportName", func(t *testing.T) { |
| 520 | module := NewModuleBuilder("test").Export("", ctx.NewString("invalid")) |
| 521 | err := module.Build(ctx) |
| 522 | require.Error(t, err) |
| 523 | require.Contains(t, err.Error(), "export name cannot be empty") |
| 524 | }) |
| 525 | |
| 526 | t.Run("DuplicateExportNames", func(t *testing.T) { |
| 527 | module := NewModuleBuilder("test"). |
| 528 | Export("value", ctx.NewString("first")). |
| 529 | Export("value", ctx.NewString("duplicate")) |
| 530 | err := module.Build(ctx) |
| 531 | require.Error(t, err) |
| 532 | require.Contains(t, err.Error(), "duplicate export name: value") |
| 533 | }) |
| 534 | } |
| 535 | |
| 536 | // ============================================================================= |
| 537 | // INTEGRATION TESTS |
nothing calls this directly
no test coverage detected