github.com/cozy/cozy-stack@v0.0.0-20240327093429-939e4a21320e/tests/system/tests/onboarding_flagship.rb (about)

     1  require_relative '../boot'
     2  require 'minitest/autorun'
     3  require 'pry-rescue/minitest' unless ENV['CI']
     4  
     5  describe "Onboarding a Cozy" do
     6    it "can be made from the flagship app" do
     7      Helpers.scenario "onboarding_flagship"
     8      Helpers.start_mailhog
     9  
    10      inst = Instance.create name: "Jade", locale: "en", onboarded: false
    11      client = OAuth::Client.create inst
    12      session_code = client.register_passphrase inst, "cozy"
    13      page = client.open_authorize_page inst, session_code
    14      verify_code = client.receive_flagship_code inst
    15      access_code = client.validate_flagship inst, page, verify_code
    16      tokens = client.access_token inst, access_code
    17      refute_nil tokens["access_token"]
    18      refute_nil tokens["refresh_token"]
    19      permissions = client.list_permissions inst, tokens
    20      assert_equal permissions.dig("data", "attributes", "permissions", "rule0", "type"), "*"
    21  
    22      # Check that the passphrase has been correctly set
    23      inst.open_session
    24  
    25      # Check that the flagship app can create session code
    26      client2 = OAuth::Client.create inst
    27      session_code = client2.create_session_code inst
    28      refute_nil session_code
    29  
    30      # Same with 2FA enabled
    31      inst.setup_2fa
    32      session_code = client2.create_session_code inst
    33      refute_nil session_code
    34      client2.destroy inst
    35  
    36      assert_equal inst.check, []
    37      inst.remove
    38    end
    39  end