You are an expert in writing code in many different languages. Your goal is to perform code completion for the following code, keeping in mind the rest of the code and the file meta data.
    Metadata details:
    filename: account_provider_spec.rb
    path of file: ./repos/darrrr/spec/lib/darrrr
    
    the code of the file until where you have to start completion: # frozen_string_literal: true

require_relative "../../spec_helper"

module Darrrr
  describe AccountProvider, vcr: { cassette_name: "delegated_account_recovery/recovery_provider" } do
    let(:recovery_provider) { example_recovery_provider }
    let(:account_provider) { AccountProvider.this }
    let(:token) { account_provider.generate_recovery_token(data: "hai", audience: recovery_provider).first }

    # Generate a random key that isn't used during the sealing p
    
    def raw_token(recovery_token: nil, issuer: nil, version: nil, issued_time: nil, data: nil)
      RecoveryTokenWriter.new.tap do |token|
        token.token_id = SecureRandom.random_bytes(16).bytes.to_a
        token.issuer = issuer || recovery_provider.origin
        token.issued_time = issued_time || Time.now.utc.iso8601
        token.options = 0 # when the token-status endpoint is implemented, change this to 1
        token.audience = account_provider.origin
        token.token_type = COUNTERSIGNED_RECOVERY_TOKEN_TYPE
        token.version = version || PROTOCOL_VERSION
        token.data = data || Base64.strict_decode64(account_provider.send(:seal, recovery_token))
      end
    end