code: /*
   * Copyright (c) 2022 Airbyte, Inc., all rights reserved.
   */
  
  package io.airbyte.oauth.flows;
  
  import com.fasterxml.jackson.databind.JsonNode;
  import io.airbyte.oauth.BaseOAuthFlow;
  import io.airbyte.oauth.MoreOAuthParameters;
  import java.util.List;
  import java.util.Map;
  
  public class SmartsheetsOAuthFlowTest extends BaseOAuthFlowTest {
  
    @Override
    protected BaseOAuthFlow getOAuthFlow() {
      return new SmartsheetsOAuthFlow(getConfigRepository(), getHttpClient(), this::getConstantState);
    }
  
    @Override
    protected List<String> getExpectedOutputPath() {
      return List.of();
    }
  
    @Override
    protected String getExpectedConsentUrl() {
      return "https://app.smartsheet.com/b/authorize?client_id=test_client_id&response_type=code&state=state&scope=READ_SHEETS";
    }
  
    @Override
    protected Map<String, String> getExpectedOutput() {
      return Map.of(
          "access_token", "access_token_response",
          "client_id", MoreOAuthParameters.SECRET_MASK,
          "client_secret", MoreOAuthParameters.SECRET_MASK);
    }
  
    @Override
    protected JsonNode getCompleteOAuthOutputSpecification() {
      return getJsonSchema(Map.of("access_token", Map.of("type", "string")));
    }
  
    @Override
    protected Map<String, String> getExpectedFilteredOutput() {
      return Map.of(
          "access_token", "access_token_response",
          "client_id", MoreOAuthParameters.SECRET_MASK);
    }
  
  }
  