mirror of
https://github.com/hashicorp/terraform.git
synced 2026-03-21 18:10:30 -04:00
46 lines
1.4 KiB
Go
46 lines
1.4 KiB
Go
// Copyright IBM Corp. 2014, 2026
|
|
// SPDX-License-Identifier: BUSL-1.1
|
|
|
|
package configs
|
|
|
|
import (
|
|
"path/filepath"
|
|
"testing"
|
|
|
|
"github.com/hashicorp/go-slug/sourceaddrs"
|
|
"github.com/hashicorp/go-slug/sourcebundle"
|
|
)
|
|
|
|
// TestSourceBundleParser_LoadConfigDir_WithRelativePath tests that when
|
|
// LocalPathForSource returns a relative path, LoadConfigDir correctly uses
|
|
// it as-is without attempting to convert it.
|
|
func TestSourceBundleParser_LoadConfigDir_WithRelativePath(t *testing.T) {
|
|
// Use the basics-bundle from stacks testdata which has a component with has a relative source.
|
|
bundlePath := "../stacks/stackconfig/testdata/basics-bundle"
|
|
bundle, err := sourcebundle.OpenDir(bundlePath)
|
|
if err != nil {
|
|
t.Fatalf("failed to open source bundle: %s", err)
|
|
}
|
|
|
|
source := sourceaddrs.MustParseSource("../stacks/stackconfig/testdata/basics-bundle").(sourceaddrs.FinalSource)
|
|
|
|
// Create a SourceBundleParser and load the config directory.
|
|
parser := NewSourceBundleParser(bundle)
|
|
mod, diags := parser.LoadConfigDir(source)
|
|
|
|
if diags.HasErrors() {
|
|
t.Fatalf("unexpected errors: %s", diags.Error())
|
|
}
|
|
|
|
if mod == nil {
|
|
t.Fatal("expected non-nil module")
|
|
}
|
|
|
|
// Verify that the SourceDir is set and that it's a relative path.
|
|
if mod.SourceDir == "" {
|
|
t.Error("expected SourceDir to be set, but it was empty")
|
|
}
|
|
if filepath.IsAbs(mod.SourceDir) {
|
|
t.Errorf("expected SourceDir to be relative, but got absolute path: %s", mod.SourceDir)
|
|
}
|
|
}
|