describe PasswordComplexityController, type: :controller do
  describe '#show' do
    let(:params) do
      { user: { password: 'moderately complex password' } }
    end

    subject { get :show, format: :turbo_stream, params: params }

    it 'computes a password score' do
      subject
      expect(assigns(:score)).to eq(3)
    end

    context 'with a different resource name' do
      let(:params) do
        { super_admin: { password: 'moderately complex password' } }
      end

      it 'computes a password score' do
        subject
        expect(assigns(:score)).to eq(3)
      end
    end

    context 'when rendering the view' do
      render_views

      it 'renders Javascript that updates the password complexity meter' do
        subject
        expect(response.body).to include('complexity-label')
        expect(response.body).to include('complexity-bar')
      end
    end
  end
end