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

Function TestImplicitInputCachePerClient

dagql/dagql_test.go:2791–2820  ·  view source on GitHub ↗
(t *testing.T)

Source from the content-addressed store, hash-verified

2789}
2790
2791func TestImplicitInputCachePerClient(t *testing.T) {
2792 srv := newExternalDagqlServerForTest(t, Query{})
2793 cache := newCache(t)
2794
2795 var calls atomic.Int64
2796 dagql.Fields[Query]{
2797 dagql.NodeFunc("perClientCounter", func(ctx context.Context, _ dagql.ObjectResult[Query], _ struct{}) (int, error) {
2798 return int(calls.Add(1)), nil
2799 }).WithInput(dagql.PerClientInput),
2800 }.Install(srv)
2801
2802 callForClient := func(clientID string) int {
2803 ctx := engine.ContextWithClientMetadata(context.Background(), &engine.ClientMetadata{
2804 ClientID: clientID,
2805 SessionID: "dagql-test-session",
2806 })
2807 ctx = dagql.ContextWithCache(ctx, cache)
2808 var res int
2809 err := srv.Select(ctx, srv.Root(), &res, dagql.Selector{
2810 Field: "perClientCounter",
2811 })
2812 require.NoError(t, err)
2813 return res
2814 }
2815
2816 assert.Equal(t, callForClient("client-a"), 1)
2817 assert.Equal(t, callForClient("client-a"), 1)
2818 assert.Equal(t, callForClient("client-b"), 2)
2819 assert.Equal(t, callForClient("client-b"), 2)
2820}
2821
2822func TestDefaultConcurrencyKeyUsesSessionID(t *testing.T) {
2823 srv := newExternalDagqlServerForTest(t, Query{})

Callers

nothing calls this directly

Calls 12

NodeFuncFunction · 0.92
ContextWithCacheFunction · 0.92
newCacheFunction · 0.70
InstallMethod · 0.65
AddMethod · 0.65
BackgroundMethod · 0.65
SelectMethod · 0.65
EqualMethod · 0.65
WithInputMethod · 0.45
RootMethod · 0.45

Tested by

no test coverage detected