summaryrefslogtreecommitdiff
path: root/spec/migrations/20221025043930_change_default_value_on_password_last_changed_at_to_user_details_spec.rb
blob: 4d6f06eb146923a7ae83289f0fd6004327a72db2 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
# frozen_string_literal: true

require 'spec_helper'
require_migration!

RSpec.describe ChangeDefaultValueOnPasswordLastChangedAtToUserDetails, :migration do
  let(:namespace) { table(:namespaces).create!(name: 'user', path: 'user') }
  let(:users) { table(:users) }
  let(:user_details) { table(:user_details) }

  it 'correctly migrates up and down' do
    user = create_user!(email: '1234@abc')
    user_details.create!(user_id: user.id, provisioned_by_group_id: namespace.id)

    expect(UserDetail.find_by(user_id: user.id).password_last_changed_at).to be_nil

    migrate!

    user = create_user!(email: 'abc@1234')
    user_details.create!(user_id: user.id, provisioned_by_group_id: namespace.id)

    expect(UserDetail.find_by(user_id: user.id).password_last_changed_at).not_to be_nil
  end

  private

  def create_user!(name: "Example User", email: "user@example.com", user_type: nil)
    users.create!(
      name: name,
      email: email,
      username: name,
      projects_limit: 0,
      user_type: user_type,
      confirmed_at: Time.current
    )
  end
end