TestLoadProjectConfigFromContents verifies that merging works correctly when loading from memory-based bytes.
(t *testing.T)
| 91 | |
| 92 | // TestLoadProjectConfigFromContents verifies that merging works correctly when loading from memory-based bytes. |
| 93 | func TestLoadProjectConfigFromContents(t *testing.T) { |
| 94 | mainContent := ` |
| 95 | name: project-bytes |
| 96 | type: php |
| 97 | hooks: |
| 98 | - "echo byte-hook-main" |
| 99 | ` |
| 100 | overrideContent := ` |
| 101 | type: drupal11 |
| 102 | hooks: |
| 103 | - "echo byte-hook-override" |
| 104 | ` |
| 105 | overrides := []OverrideConfig{ |
| 106 | { |
| 107 | Path: "override.yaml", |
| 108 | Content: []byte(overrideContent), |
| 109 | }, |
| 110 | } |
| 111 | |
| 112 | var cfg TestConfig |
| 113 | err := LoadProjectConfigFromContents([]byte(mainContent), overrides, &cfg) |
| 114 | require.NoError(t, err) |
| 115 | |
| 116 | require.Equal(t, "project-bytes", cfg.Name) |
| 117 | require.Equal(t, "drupal11", cfg.Type) |
| 118 | require.Equal(t, []string{"echo byte-hook-main", "echo byte-hook-override"}, cfg.Hooks) |
| 119 | } |
| 120 | |
| 121 | // TestNewConfigProviderIsolation ensures that separate providers do not share state. |
| 122 | func TestNewConfigProviderIsolation(t *testing.T) { |
nothing calls this directly
no test coverage detected