anchor.diff:  %% @private
   -spec connect_via_gs(node(), aai:auth(), ct_config()) ->
       {ok, GsClient :: pid()} | errors:error().
  -connect_via_gs(_Node, ?NOBODY, _Config) ->
  -    % TODO VFS-6201 fix when connecting as nobody via gs becomes possible
  -    throw(fail);
  -connect_via_gs(Node, ?USER(UserId), Config) ->
  -    connect_via_gs(
  -        Node,
  -        ?SUB(user, UserId),
  -        {token, api_test_env:get_user_access_token(UserId, Config)},
  -        [{cacerts, op_test_rpc:get_cert_chain_pems(Node)}]
  -    ).
  -
  -
  -%% @private
  --spec connect_via_gs(
  -    node(),
  -    aai:subject(),
  -    gs_protocol:client_auth(),
  -    ConnectionOpts :: proplists:proplist()
  -) ->
  -    {ok, GsClient :: pid()} | errors:error().
  -connect_via_gs(Node, ExpIdentity, Authorization, Opts) ->
  -    case gs_client:start_link(
  -        gs_endpoint(Node),
  -        Authorization,
  -        op_test_rpc:gs_protocol_supported_versions(Node),
  -        fun(_) -> ok end,
  -        Opts
  -    ) of
  +connect_via_gs(Node, Client, Config) ->
  +    {Auth, ExpIdentity} = case Client of
  +        ?NOBODY ->
  +            {undefined, ?SUB(nobody)};
  +        ?USER(UserId) ->
  +            TokenAuth = {token, api_test_env:get_user_access_token(UserId, Config)},
  +            {TokenAuth, ?SUB(user, UserId)}
  +    end,
  +    GsEndpoint = gs_endpoint(Node),
  +    GsSupportedVersions = op_test_rpc:gs_protocol_supported_versions(Node),
  +    Opts = [{cacerts, op_test_rpc:get_cert_chain_pems(Node)}],
  +
  +    case gs_client:start_link(GsEndpoint, Auth, GsSupportedVersions, fun(_) -> ok end, Opts) of
           {ok, GsClient, #gs_resp_handshake{identity = ExpIdentity}} ->
               {ok, GsClient};
           {error, _} = Error ->
  
positive.code: ) ->
      AllTestCasesPassed :: boolean().
  run_testcases(ScenarioTemplates, TargetNodes, Clients, DataSets, TestCaseFun) ->
      lists:foldl(fun(#scenario_template{type = ScenarioType} = ScenarioTemplate, PrevScenariosPassed) ->
          PrevScenariosPassed and lists:foldl(fun(Client, PrevClientsPassed) ->
              PrevClientsPassed and lists:foldl(fun(DataSet, PrevDataSetsPassed) ->
                  TargetNode = lists_utils:random_element(TargetNodes),
  
negative.code:                     TargetNode, Client, DataSet, ScenarioTemplate
                  )
              end, true, DataSets)
          end, true, Clients)
      end, true, ScenarioTemplates).
  
  
  %% @private
  