in internal/testutil/testutil.go [59:91]
func NewReadOnlyClient(t testing.TB, objs ...runtime.Object) client.Client {
scheme := runtime.NewScheme()
require.NoError(t, apiv1.SchemeBuilder.AddToScheme(scheme))
require.NoError(t, corev1.SchemeBuilder.AddToScheme(scheme))
builder := fake.NewClientBuilder().
WithScheme(scheme).
WithRuntimeObjects(objs...).
WithStatusSubresource(&apiv1.ResourceSlice{}, &apiv1.Composition{})
builder.WithInterceptorFuncs(interceptor.Funcs{
Create: func(ctx context.Context, client client.WithWatch, obj client.Object, opts ...client.CreateOption) error {
return errors.New("no writes allowed")
},
Update: func(ctx context.Context, client client.WithWatch, obj client.Object, opts ...client.UpdateOption) error {
return errors.New("no writes allowed")
},
Patch: func(ctx context.Context, client client.WithWatch, obj client.Object, patch client.Patch, opts ...client.PatchOption) error {
return errors.New("no writes allowed")
},
Delete: func(ctx context.Context, client client.WithWatch, obj client.Object, opts ...client.DeleteOption) error {
return errors.New("no writes allowed")
},
SubResourceUpdate: func(ctx context.Context, client client.Client, subResourceName string, obj client.Object, opts ...client.SubResourceUpdateOption) error {
return errors.New("no writes allowed")
},
SubResourcePatch: func(ctx context.Context, client client.Client, subResourceName string, obj client.Object, patch client.Patch, opts ...client.SubResourcePatchOption) error {
return errors.New("no writes allowed")
},
})
return builder.Build()
}