MCPcopy Create free account
hub / github.com/dagger/dagger / TestDaggerInstall

Method TestDaggerInstall

core/integration/module_cli_test.go:692–1128  ·  view source on GitHub ↗
(ctx context.Context, t *testctx.T)

Source from the content-addressed store, hash-verified

690}
691
692func (CLISuite) TestDaggerInstall(ctx context.Context, t *testctx.T) {
693 t.Run("local", func(ctx context.Context, t *testctx.T) {
694 c := connect(ctx, t)
695
696 base := goGitBase(t, c).
697 WithMountedFile(testCLIBinPath, daggerCliFile(t, c)).
698 WithWorkdir("/work/subdir/dep").
699 With(daggerExec("init", "--source=.", "--name=dep", "--sdk=go")).
700 WithNewFile("/work/subdir/dep/main.go", `package main
701
702 import "context"
703
704 type Dep struct {}
705
706 func (m *Dep) DepFn(ctx context.Context, str string) string { return str }
707 `,
708 ).
709 WithWorkdir("/work").
710 With(daggerExec("init", "--source=test", "--name=test", "--sdk=go", "test")).
711 With(daggerExec("install", "-m=test", "./subdir/dep")).
712 WithNewFile("/work/test/main.go", `package main
713
714 import "context"
715
716 type Test struct {}
717
718 func (m *Test) Fn(ctx context.Context) (string, error) { return dag.Dep().DepFn(ctx, "hi dep") }
719 `,
720 )
721
722 // try invoking it from a few different paths, just for more corner case coverage
723
724 t.Run("from src dir", func(ctx context.Context, t *testctx.T) {
725 out, err := base.WithWorkdir("test").With(daggerCall("fn")).Stdout(ctx)
726 require.NoError(t, err)
727 require.Equal(t, "hi dep", strings.TrimSpace(out))
728 })
729
730 t.Run("from src root", func(ctx context.Context, t *testctx.T) {
731 out, err := base.With(daggerCallAt("test", "fn")).Stdout(ctx)
732 require.NoError(t, err)
733 require.Equal(t, "hi dep", strings.TrimSpace(out))
734 })
735
736 t.Run("from root", func(ctx context.Context, t *testctx.T) {
737 out, err := base.WithWorkdir("/").With(daggerCallAt("work/test", "fn")).Stdout(ctx)
738 require.NoError(t, err)
739 require.Equal(t, "hi dep", strings.TrimSpace(out))
740 })
741
742 t.Run("from dep parent", func(ctx context.Context, t *testctx.T) {
743 out, err := base.WithWorkdir("/work/subdir").With(daggerCallAt("../test", "fn")).Stdout(ctx)
744 require.NoError(t, err)
745 require.Equal(t, "hi dep", strings.TrimSpace(out))
746 })
747
748 t.Run("from dep dir", func(ctx context.Context, t *testctx.T) {
749 out, err := base.WithWorkdir("/work/subdir/dep").With(daggerCallAt("../../test", "fn")).Stdout(ctx)

Callers

nothing calls this directly

Calls 15

goGitBaseFunction · 0.85
daggerCliFileFunction · 0.85
daggerExecFunction · 0.85
daggerCallFunction · 0.85
daggerCallAtFunction · 0.85
requireErrOutFunction · 0.85
testOnMultipleVCSFunction · 0.85
privateRepoSetupFunction · 0.85
testGitModuleRefFunction · 0.85
requireErrRegexpFunction · 0.85
connectFunction · 0.70
RunMethod · 0.65

Tested by

no test coverage detected