void postSpan(String version) throws IOException {
    SpanBytesEncoder encoder =
      "v1".equals(version) ? SpanBytesEncoder.JSON_V1 : SpanBytesEncoder.JSON_V2;

    List<Span> testTrace = List.of(
      Span.newBuilder().timestamp(TODAY).traceId("1").id("2").name("test-trace").build()
    );

    Response response = client.newCall(new Request.Builder()
      .url(url(server, "/api/" + version + "/spans"))
      .post(RequestBody.create(encoder.encodeList(testTrace)))
      .build())
      .execute();
    assertSuccessful(response);
  }
This POSTs a single span. Afterwards, we expect this trace in storage, and also the self-trace
of POSTing it.
zipkin-server/src/test/java/zipkin2/server/internal/brave/ITZipkinSelfTracing.java