railsで新規登録フォームを作成し、RSpecで名前が空欄の時に失敗するというテストを書いた際に、have_current_pathで失敗後の遷移先として新規登録画面を期待するというテストを書いたのですが、なぜか一覧画面を期待してしまいテストが失敗してしまいます。


実行環境  
rails 7.0.3  
ruby 3.1.2  
rspec 3.11

ブラウザで操作した際には期待したpathに遷移することが確認できるのですが、RSpecのsystemテストでは期待したpathになっておらず、テストが落ちてしまいます。

著者の名前を登録するだけのシンプルなフォームのテストで名前が空欄の時には、エラーメッセージが表示され、新規登録画面をレンダリングするというテストでなぜ失敗するのかわからず質問させていただきます。

### 実装内容

routes.rb

[code]

    resources :authors
    
[/code]

app/model/author.rb

[code]

    validates :name, presence: true
    
[/code]

app/controller/authors_controller

[code]

    def new
      @author = Author.new
    end
    
    def create
      @author = Author.new(author_params)
      if @author.save
       redirect_to authors_path, notice: "#{@author.name}を登録しました"
      else
        render :new, status: :unprocessable_entity
      end
    end
    
    private
    
    def author_params
      params.require(:author).permit(:name)
    end
    
[/code]

app/views/authors/new.html.haml

[code]

    = simple_form_for @author do |f|
      = f.input :name
      = f.button :submit
    
[/code]

spec/system/authors_spec.rb

[code]

       context '必須項目の名前が入力されていない時' do
          it '作成できない' do
            visit new_author_path
            click_button '登録する'
    
            expect(page).to have_content '著者名を入力してください'
            expect(page).to have_current_path new_author_path
          end
        end
    
[/code]

上記の`author_spec.rb`の実行結果が著者の一覧画面を期待するとなってしまい、失敗します。

` 1) 著者の新規登録 必須項目の名前が入力されていない時 作成できない Failure/Error: expect(page).to
have_current_path new_author_path expected "/authors" to equal "/authors/new"`




自分は経験が浅いですが、気になったので書き込みました。  
ユーザーログインをして登録というかたちでしょうか？  
ユーザー作成、ログインなどの記載がみられていないところから、  
ログインしていないので、一覧画面に遷移しているのかと思いました。  
検討違いなことを言っていたら申し訳ないです。

