(t *testing.T)
| 526 | } |
| 527 | |
| 528 | func TestNestedClientMetadataForRequest(t *testing.T) { |
| 529 | t.Parallel() |
| 530 | |
| 531 | baseMetadata := func() *engine.ClientMetadata { |
| 532 | return &engine.ClientMetadata{ |
| 533 | ClientID: "nested-client", |
| 534 | ClientSecretToken: "secret", |
| 535 | SessionID: "session", |
| 536 | ClientHostname: "nested-host", |
| 537 | ClientStableID: "stable", |
| 538 | ClientVersion: "", |
| 539 | Labels: map[string]string{ |
| 540 | "ignored": "true", |
| 541 | }, |
| 542 | SSHAuthSocketPath: "/tmp/ssh.sock", |
| 543 | AllowedLLMModules: []string{"parent"}, |
| 544 | ExtraModules: []engine.ExtraModule{{ |
| 545 | Ref: "github.com/dagger/base-extra", |
| 546 | }}, |
| 547 | LoadWorkspaceModules: true, |
| 548 | EagerRuntime: true, |
| 549 | LockMode: string(workspace.LockModeFrozen), |
| 550 | Workspace: stringPtr("github.com/dagger/base@main"), |
| 551 | UseRecipeIDsByDefault: true, |
| 552 | } |
| 553 | } |
| 554 | |
| 555 | t.Run("inherits live nested client identity and policy without forwarded metadata", func(t *testing.T) { |
| 556 | t.Parallel() |
| 557 | |
| 558 | base := baseMetadata() |
| 559 | md := nestedClientMetadataForRequest(http.Header{}, base) |
| 560 | |
| 561 | require.Equal(t, "nested-client", md.ClientID) |
| 562 | require.Equal(t, "secret", md.ClientSecretToken) |
| 563 | require.Equal(t, "session", md.SessionID) |
| 564 | require.Equal(t, "nested-host", md.ClientHostname) |
| 565 | require.Equal(t, "stable", md.ClientStableID) |
| 566 | require.Equal(t, engine.Version, md.ClientVersion) |
| 567 | require.Empty(t, md.Labels) |
| 568 | require.Equal(t, "/tmp/ssh.sock", md.SSHAuthSocketPath) |
| 569 | require.Equal(t, []string{"parent"}, md.AllowedLLMModules) |
| 570 | require.Equal(t, string(workspace.LockModeFrozen), md.LockMode) |
| 571 | require.Empty(t, md.ExtraModules) |
| 572 | require.False(t, md.LoadWorkspaceModules) |
| 573 | require.False(t, md.EagerRuntime) |
| 574 | require.Nil(t, md.Workspace) |
| 575 | require.True(t, md.UseRecipeIDsByDefault) |
| 576 | |
| 577 | base.AllowedLLMModules[0] = "mutated" |
| 578 | require.Equal(t, []string{"parent"}, md.AllowedLLMModules) |
| 579 | }) |
| 580 | |
| 581 | t.Run("overlays request-scoped forwarded metadata", func(t *testing.T) { |
| 582 | t.Parallel() |
| 583 | |
| 584 | workspaceRef := "github.com/dagger/dagger@main" |
| 585 | forwarded := engine.ClientMetadata{ |
nothing calls this directly
no test coverage detected