(ctx context.Context, t *testctx.T)
| 2524 | } |
| 2525 | |
| 2526 | func (ModuleSuite) TestSecretNested(ctx context.Context, t *testctx.T) { |
| 2527 | t.Run("pass secrets between modules", func(ctx context.Context, t *testctx.T) { |
| 2528 | // check that we can pass valid secret objects between functions in |
| 2529 | // different modules |
| 2530 | |
| 2531 | c := connect(ctx, t) |
| 2532 | ctr := c.Container().From(golangImage). |
| 2533 | WithMountedFile(testCLIBinPath, daggerCliFile(t, c)) |
| 2534 | |
| 2535 | ctr = ctr. |
| 2536 | WithWorkdir("/toplevel/secreter"). |
| 2537 | With(daggerExec("init", "--name=secreter", "--sdk=go", "--source=.")). |
| 2538 | WithNewFile("main.go", `package main |
| 2539 | |
| 2540 | import ( |
| 2541 | "context" |
| 2542 | "dagger/secreter/internal/dagger" |
| 2543 | ) |
| 2544 | |
| 2545 | type Secreter struct {} |
| 2546 | |
| 2547 | func (_ *Secreter) Make() *dagger.Secret { |
| 2548 | return dag.SetSecret("FOO", "inner") |
| 2549 | } |
| 2550 | |
| 2551 | func (_ *Secreter) Get(ctx context.Context, secret *dagger.Secret) (string, error) { |
| 2552 | return secret.Plaintext(ctx) |
| 2553 | } |
| 2554 | `, |
| 2555 | ) |
| 2556 | |
| 2557 | ctr = ctr. |
| 2558 | WithWorkdir("/toplevel"). |
| 2559 | With(daggerExec("init", "--name=toplevel", "--sdk=go", "--source=.")). |
| 2560 | With(daggerExec("install", "./secreter")). |
| 2561 | WithNewFile("main.go", `package main |
| 2562 | |
| 2563 | import ( |
| 2564 | "context" |
| 2565 | "fmt" |
| 2566 | ) |
| 2567 | |
| 2568 | type Toplevel struct {} |
| 2569 | |
| 2570 | func (t *Toplevel) TryReturn(ctx context.Context) error { |
| 2571 | text, err := dag.Secreter().Make().Plaintext(ctx) |
| 2572 | if err != nil { |
| 2573 | return err |
| 2574 | } |
| 2575 | if text != "inner" { |
| 2576 | return fmt.Errorf("expected \"inner\", but got %q", text) |
| 2577 | } |
| 2578 | return nil |
| 2579 | } |
| 2580 | |
| 2581 | func (t *Toplevel) TryArg(ctx context.Context) error { |
| 2582 | text, err := dag.Secreter().Get(ctx, dag.SetSecret("BAR", "outer")) |
| 2583 | if err != nil { |
nothing calls this directly
no test coverage detected