• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

curationexperts / laevigata / 08cde213-5978-4890-9b66-c7d91a3748c6

14 May 2025 04:22PM UTC coverage: 97.411% (+2.4%) from 94.984%
08cde213-5978-4890-9b66-c7d91a3748c6

push

circleci

mark-dce
[FIX] Admin Dashboard test is failing intermittently

**ISSUE**
The Admin Dashboard test is failing intermittently, but not
consistently in local test and CI environments.

**DIAGNOSIS**
The test suite is sometimes proceeding to reload the ETD in the
spec before turbolinks had submitted the form data.

**RESOLUTION**
Waiting for content that appears after the page refresh ensures
that the JavaScript on the page has had time to finish executing
and the application has recieved the form submission before
proceeding with additional test steps.

2822 of 2897 relevant lines covered (97.41%)

52.25 hits per line

Source File
Press 'n' to go to next uncovered line, 'b' for previous

97.37
/app/controllers/in_progress_etds_controller.rb
1
class InProgressEtdsController < ApplicationController
4✔
2
  def new
4✔
3
    authorize! :create, InProgressEtd
10✔
4

5
    @in_progress_etd = if params[:etd_id]
9✔
6
                         InProgressEtd.find_or_create_by(etd_id: params[:etd_id])
5✔
7
                       else
8
                         InProgressEtd.find_or_create_by(user_ppid: current_user.ppid)
4✔
9
                       end
10

11
    # Now that the record has been created, render the form so student can edit it:
12
    redirect_to action: :edit, id: @in_progress_etd.id
9✔
13
  end
14

15
  # Note: There is no 'create' action because the 'new' action does 'find or create'.
16

17
  def edit
4✔
18
    if current_user.nil?
13✔
19
      redirect_to new_user_session_path
2✔
20
    else
21
      @in_progress_etd = InProgressEtd.find(params[:id])
11✔
22
      authorize! :update, @in_progress_etd
10✔
23
      @in_progress_etd.refresh_from_etd!
8✔
24
      @data = @in_progress_etd.data
8✔
25
    end
26
  rescue ActiveRecord::RecordNotFound
27
    redirect_to root_url
1✔
28
  end
29

30
  # The Vue.js form uses this action to update the record.
31
  def update
4✔
32
    @in_progress_etd = InProgressEtd.find(params[:id])
11✔
33
    authorize! :update, @in_progress_etd
11✔
34
    @in_progress_etd.data = prepare_etd_data.to_json
9✔
35

36
    if @in_progress_etd.save
9✔
37
      @data = @in_progress_etd.data
9✔
38
      render json: { in_progress_etd: @data, lastCompletedStep: current_step(@data), tab_name: tab_name }, status: 200
9✔
39
    else
40
      render json: { errors: @in_progress_etd.errors.messages }, status: 422
×
41
    end
42
  end
43

44
  def destroy
4✔
45
    @in_progress_etd = InProgressEtd.find(params[:id])
2✔
46
    authorize! :update, @in_progress_etd
2✔
47
    @in_progress_etd.destroy
1✔
48

49
    redirect_to root_url
1✔
50
  end
51

52
  private
4✔
53

54
    def current_step(data)
4✔
55
      saved_data = JSON.parse(data)
9✔
56
      saved_data['currentStep']
9✔
57
    end
58

59
    def tab_name
4✔
60
      etd = request.parameters.fetch(:etd)
9✔
61
      etd.fetch(:currentTab, "About Me")
9✔
62
    end
63

64
    def prepare_etd_data
4✔
65
      # TODO: strong params
66
      new_data = request.parameters.fetch(:etd, {})
9✔
67

68
      # Add the new data to the existing persisted data
69
      @in_progress_etd.add_data(new_data)
9✔
70
    end
71
end
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc