(t *testing.T)
| 2789 | } |
| 2790 | |
| 2791 | func 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 | |
| 2822 | func TestDefaultConcurrencyKeyUsesSessionID(t *testing.T) { |
| 2823 | srv := newExternalDagqlServerForTest(t, Query{}) |
nothing calls this directly
no test coverage detected