@Override
    public Result reconcile(GcRequest request) {
        log.debug("Extension {} is being deleted", request);

        client.fetch(request.gvk(), request.name())
            .filter(deletable())
            .ifPresent(extension -> {
                var extensionStore = converter.convertTo(extension);
                storeClient.delete(extensionStore.getName(), extensionStore.getVersion());
                // drop index for this extension
                var indexer = indexerFactory.getIndexer(extension.groupVersionKind());
                indexer.unIndexRecord(request.name());
                log.debug("Extension {} was deleted", request);
            });

        return null;
    }
@Test
    void shouldDoNothingIfFinalizersPresent() {
        var fake = createExtension();
        fake.getMetadata().setFinalizers(Set.of("fake-finalizer"));
        fake.getMetadata().setDeletionTimestamp(null);
        when(client.fetch(fake.groupVersionKind(), fake.getMetadata().getName()))
            .thenReturn(Optional.of(convertTo(fake)));

        var result = reconciler.reconcile(createGcRequest());
        assertNull(result);
        verify(converter, never()).convertTo(any());
        verify(storeClient, never()).delete(any(), any());
    }