<commit_before>require 'spec_helper'

describe 'EventPages' do

  describe 'GET /newevent' do
    before do
      User.create(name: 'Alpha')
      User.create(name: 'Bravo')
      User.create(name: 'Charlie')
      @user = User.first
      visit newevent_path
    end
    title = '新規イベント作成'

    it "は'#{title}'の見出しを表示する" do
      expect(page).to have_content(title)
    end

    it "はページタイトルに'#{title}'を含む" do
      expect(page).to have_title(title)
    end

    it 'はイベント名入力欄を含む' do
      expect(page).to have_selector(:xpath, "//input[@id='event_name']")
    end

    it 'はメモ入力欄を含む' do
      expect(page).to have_selector(:xpath, "//input[@id='event_memo']")
    end

    it 'は開催日入力欄を含む' do
      expect(page).to have_selector(:xpath, "//input[@id='event_date']")
    end

    it 'は参加者選択欄を含む' do
      expect(page).to have_selector(:xpath, "//select[@id='event_participant_ids']")
    end

    it 'は参加者選択肢に登録済ユーザを含む' do
      expect(page).to have_selector(:xpath, "//option[@value='#{<EMAIL>}']")
    end
  end

  describe 'イベント作成機能' do
    before do
      User.create(name: 'Alpha')
      User.create(name: 'Bravo')
      User.create(name: 'Charlie')
      @user = User.first
      visit newevent_path
    end
    let(:submit) { '確定' }

    describe '無効な登録内容のとき' do
      it 'イベントが追加されないこと' do
        expect { click_button submit }.not_to change(Event, :count)
      end

      describe '確定ボタン押下時' do
        before { click_button submit }

        specify 'イベント作成画面に戻ること' do
          expect(page).to have_title('新規イベント作成')
        end

        specify 'エラーメッセージが表示されること' do
          expect(page).to have_content('Error')
        end<commit_msg>キャンセルボタンについてのスペックを追記<commit_after>require 'spec_helper'

describe 'EventPages' do

  describe 'GET /newevent' do
    before do
      User.create(name: 'Alpha')
      User.create(name: 'Bravo')
      User.create(name: 'Charlie')
      @user = User.first
      visit newevent_path
    end
    title = '新規イベント作成'

    it "は'#{title}'の見出しを表示する" do
      expect(page).to have_content(title)
    end

    it "はページタイトルに'#{title}'を含む" do
      expect(page).to have_title(title)
    end

    it 'はイベント名入力欄を含む' do
      expect(page).to have_selector(:xpath, "//input[@id='event_name']")
    end

    it 'はメモ入力欄を含む' do
      expect(page).to have_selector(:xpath, "//input[@id='event_memo']")
    end

    it 'は開催日入力欄を含む' do
      expect(page).to have_selector(:xpath, "//input[@id='event_date']")
    end

    it 'は参加者選択欄を含む' do
      expect(page).to have_selector(:xpath, "//select[@id='event_participant_ids']")
    end

    it 'は参加者選択肢に登録済ユーザを含む' do
      expect(page).to have_selector(:xpath, "//option[@value='#{<EMAIL>}']")
    end
  end

  describe 'イベント作成機能' do
    before do
      User.create(name: 'Alpha')
      User.create(name: 'Bravo')
      User.create(name: 'Charlie')
      @user = User.first
      visit newevent_path
    end
    let(:submit) { '確定' }
    let(:cancel) { 'キャンセル' }

    describe 'キャンセルボタン押下時' do
      before { click_button cancel }

      # 本来はイベント一覧ページに遷移する
      # イベント一覧ページができるまではイベント作成画面に戻る
      specify 'イベント作成画面に戻ること' do
        expect(page).to have_title('新規イベント作成')
      end
    end

    describe '無効な登録内容のとき' do
      it 'イベントが追加されないこと' do
        expect { click_button submit }.not_to change(Event, :count)
      end

      describe '確定ボタン押下時' do
        before { click_button submit }

        specify 'イベント作成画面に戻ること' do
          expect(page).to have_title('新規イベント作成')
        end

        specify 'エラーメッセージが表示されること' do
          expect(page).to have_content('Error')
        end
{'fraction_non_alphanumeric': 0.13000840571588682, 'fraction_numerical': 0.0, 'mean_word_length': 2.6615384615384614, 'pattern_counts': {'":': 0, '<': 5, '<?xml version=': 0, '>': 5, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '4492292', 'n_tokens_mistral': 1558, 'n_tokens_neox': 1558, 'n_words': 258}