diff --git a/app/models/github_pull_request.rb b/app/models/github_pull_request.rb
index d4cd6eec1..5ab50ecce 100644
--- a/app/models/github_pull_request.rb
+++ b/app/models/github_pull_request.rb
@@ -31,6 +31,10 @@ def created_at
@graphql_hash.createdAt
end
+ def merged?
+ @graphql_hash.merged
+ end
+
def label_names
@graphql_hash.labels.edges.map do |e|
e.node.name.downcase
diff --git a/app/models/pull_request.rb b/app/models/pull_request.rb
index 2306c2655..98785f3f8 100644
--- a/app/models/pull_request.rb
+++ b/app/models/pull_request.rb
@@ -1,30 +1,89 @@
# frozen_string_literal: true
-class PullRequest
+class PullRequest < ApplicationRecord
attr_reader :github_pull_request
- def initialize(github_pull_request)
- @github_pull_request = github_pull_request
- end
+ delegate :title, :body, :url, :created_at, :name, :owner, :repo_id,
+ :name_with_owner, :label_names, :merged?, to: :github_pull_request
+
+ state_machine initial: :new do
+ event :spam_repo do
+ transition %i[new waiting] => :spam_repo,
+ if: ->(pr) { pr.spammy? }
+ end
+
+ event :invalid_label do
+ transition %i[new waiting] => :invalid_label,
+ if: ->(pr) { pr.labelled_invalid? }
+ end
+
+ event :eligible do
+ transition %i[new waiting] => :eligible,
+ if: ->(pr) { !pr.spammy_or_invalid? && pr.older_than_week? }
+ end
- delegate :id, :title, :body, :url, :created_at, :name, :owner, :repo_id,
- :name_with_owner, :label_names, to: :github_pull_request
+ event :waiting do
+ transition %i[new spam_repo invalid_label] => :waiting,
+ if: ->(pr) { !pr.spammy_or_invalid? && !pr.older_than_week? }
+ end
+
+ before_transition to: %i[waiting],
+ from: %i[new] do |pr, _transition|
+ pr.waiting_since = pr.created_at
+ pr.save!
+ end
- def state
- if spammy?
- 'spammy'
- elsif label_names.include?('invalid')
- 'invalid'
- else
- 'eligible'
+ before_transition to: %i[waiting],
+ from: %i[spam_repo invalid_label] do |pr, _transition|
+ pr.waiting_since = Time.zone.now
+ pr.save!
end
end
- def eligible?
- state == 'eligible'
+ def check_state
+ return if spam_repo
+ return if invalid_label
+ return if eligible
+
+ waiting
+ end
+
+ def most_recent_time
+ return waiting_since unless waiting_since.nil?
+
+ github_pull_request.created_at
+ end
+
+ def older_than_week?
+ most_recent_time <= (Time.zone.now - 7.days)
+ end
+
+ def labelled_invalid?
+ return false if merged?
+
+ label_names.select { |l| l[/\binvalid\b/i] }.any?
end
def spammy?
SpamRepositoryService.call(repo_id)
end
+
+ def spammy_or_invalid?
+ labelled_invalid? || spammy?
+ end
+
+ def github_id
+ github_pull_request.id
+ end
+
+ def define_github_pull_request(ghpr)
+ @github_pull_request = ghpr
+ end
+
+ def self.from_github_pull_request(ghpr)
+ pr = find_or_create_by(gh_id: ghpr.id)
+ pr.define_github_pull_request(ghpr)
+ pr.check_state
+ pr
+ end
end
diff --git a/app/models/user.rb b/app/models/user.rb
index 61429cfbc..2b6600254 100644
--- a/app/models/user.rb
+++ b/app/models/user.rb
@@ -14,11 +14,18 @@ class User < ApplicationRecord
end
event :wait do
- transition registered: :waiting
+ transition registered: :waiting,
+ if: ->(user) { user.sufficient_waiting_or_eligible_prs? }
end
event :complete do
- transition waiting: :completed
+ transition waiting: :completed,
+ if: ->(user) { user.sufficient_eligible_prs? }
+ end
+
+ event :insufficient do
+ transition waiting: :registered,
+ unless: ->(user) { user.sufficient_waiting_or_eligible_prs? }
end
event :won do
@@ -27,7 +34,8 @@ class User < ApplicationRecord
end
event :incomplete do
- transition registered: :incompleted
+ transition registered: :incompleted,
+ unless: ->(user) { user.any_waiting_or_is_eligible? }
end
event :gifted do
@@ -39,11 +47,6 @@ class User < ApplicationRecord
transition incompleted: :completed
end
- event :ineligible do
- transition waiting: :registered,
- unless: ->(user) { user.sufficient_eligible_prs? }
- end
-
state all - [:new] do
validates :terms_acceptance, acceptance: true
validates :email, presence: true
@@ -66,13 +69,15 @@ class User < ApplicationRecord
end
state :waiting do
- validates :sufficient_eligible_prs?, inclusion: {
- in: [true], message: 'user does not have sufficient eligible prs' }
+ validates :sufficient_waiting_or_eligible_prs?, inclusion: {
+ in: [true],
+ message: 'user does not have sufficient waiting or eligible prs' }
end
state :completed do
- validates :won_hacktoberfest?, inclusion: {
- in: [true], message: 'user has not met all winning conditions' }
+ validates :sufficient_eligible_prs?, inclusion: {
+ in: [true],
+ message: 'user does not have sufficient eligible prs' }
def win
assign_coupon
@@ -91,6 +96,8 @@ def win
state :incompleted do
validates :hacktoberfest_ended?, inclusion: {
in: [true], message: 'hacktoberfest has not yet ended' }
+ validates :any_waiting_prs?, inclusion: {
+ in: [false], message: 'user has waiting prs' }
validates :sufficient_eligible_prs?, inclusion: {
in: [false], message: 'user has too many sufficient eligible prs' }
@@ -113,10 +120,14 @@ def gift
end
before_transition to: %i[completed incompleted] do |user, _transition|
- user.receipt = user.scoring_pull_requests
+ user.receipt = user.scoring_pull_requests_receipt
end
- after_transition to: :waiting, do: :update_waiting_since
+ after_transition to: :waiting do |user, _transition|
+ # Some users might be able to go direct to winning
+ # if their PRs are already all a week old
+ user.complete
+ end
after_transition to: :completed do |user, _transition|
user.win
@@ -128,44 +139,44 @@ def pull_requests
pull_request_service.all
end
- def score
- score = eligible_pull_requests_count
- score > 4 ? 4 : score
+ def waiting_pull_requests_count
+ pull_request_service.waiting_prs.count
end
def eligible_pull_requests_count
pull_request_service.eligible_prs.count
end
- delegate :scoring_pull_requests, :non_scoring_pull_requests,
- to: :pull_request_service
+ def waiting_or_eligible_pull_requests_count
+ waiting_pull_requests_count + eligible_pull_requests_count
+ end
+
+ def sufficient_waiting_or_eligible_prs?
+ waiting_or_eligible_pull_requests_count >= 4
+ end
def sufficient_eligible_prs?
eligible_pull_requests_count >= 4
end
- def won_hacktoberfest?
- sufficient_eligible_prs? && waiting_for_week?
+ def any_waiting_prs?
+ waiting_pull_requests_count.positive?
end
- def hacktoberfest_ended?
- Hacktoberfest.end_date.past?
+ def any_waiting_or_is_eligible?
+ any_waiting_prs? || sufficient_eligible_prs?
end
- def update_waiting_since
- latest_pr = scoring_pull_requests.max_by do |pr|
- pr.github_pull_request.created_at
- end
-
- update(waiting_since: Time.zone.parse(
- latest_pr.github_pull_request.created_at
- ))
+ def score
+ score = waiting_or_eligible_pull_requests_count
+ score > 4 ? 4 : score
end
- def waiting_for_week?
- return false if waiting_since.nil?
+ delegate :scoring_pull_requests, :non_scoring_pull_requests,
+ :scoring_pull_requests_receipt, to: :pull_request_service
- waiting_since <= (Time.zone.now - 7.days)
+ def hacktoberfest_ended?
+ Hacktoberfest.end_date.past?
end
def completed_or_won?
diff --git a/app/presenters/profile_page_presenter.rb b/app/presenters/profile_page_presenter.rb
index 91c077a65..dd01fe389 100644
--- a/app/presenters/profile_page_presenter.rb
+++ b/app/presenters/profile_page_presenter.rb
@@ -37,8 +37,9 @@ def scoring_pull_requests
def persisted_winning_pull_requests
@user.receipt.map do |pr|
- github_hash = Hashie::Mash.new(pr).github_pull_request.graphql_hash
- PullRequest.new(GithubPullRequest.new(github_hash))
+ PullRequest.from_github_pull_request(
+ GithubPullRequest.new(Hashie::Mash.new(pr))
+ )
end
end
@@ -62,10 +63,6 @@ def name
@user.name
end
- def waiting_since_for_js
- @user.waiting_since&.httpdate
- end
-
def show_timer?
@user.waiting?
end
diff --git a/app/services/backfill_receipt_service.rb b/app/services/backfill_receipt_service.rb
index d424e0f3f..eb7f99f32 100644
--- a/app/services/backfill_receipt_service.rb
+++ b/app/services/backfill_receipt_service.rb
@@ -4,6 +4,6 @@ module BackfillReceiptService
module_function
def call(user)
- user.update(receipt: user.scoring_pull_requests)
+ user.update(receipt: user.scoring_pull_requests_receipt)
end
end
diff --git a/app/services/gift_service.rb b/app/services/gift_service.rb
index 88d0f6be1..975ecd6ef 100644
--- a/app/services/gift_service.rb
+++ b/app/services/gift_service.rb
@@ -10,10 +10,10 @@ def call
group.each do |u|
last_pr = u.receipt.max_by do |pr_obj|
Time.zone.parse(
- pr_obj['github_pull_request']['graphql_hash']['createdAt']
+ pr_obj['createdAt']
)
end
- date = last_pr['github_pull_request']['graphql_hash']['createdAt']
+ date = last_pr['createdAt']
score = u.receipt.count
user_dates << { id: u.id, score: score, date: date }
end
diff --git a/app/services/pull_request_service.rb b/app/services/pull_request_service.rb
index 7b6beee1e..8997286f9 100644
--- a/app/services/pull_request_service.rb
+++ b/app/services/pull_request_service.rb
@@ -14,10 +14,14 @@ def all
# in order to lookup all Repo Spammy states in SQL query
# prs = PullRequestStateLookupService.new(filtered_github_pull_requests)
filtered_github_pull_requests(github_pull_requests).map do |ghpr|
- PullRequest.new(ghpr)
+ PullRequest.from_github_pull_request(ghpr)
end
end
+ def waiting_prs
+ all.select(&:waiting?)
+ end
+
def eligible_prs
all.select(&:eligible?)
end
@@ -30,6 +34,12 @@ def scoring_pull_requests
end
end
+ def scoring_pull_requests_receipt
+ scoring_pull_requests.map do |pr|
+ pr.github_pull_request.graphql_hash
+ end
+ end
+
def non_scoring_pull_requests
all.drop(scoring_pull_requests.count)
end
diff --git a/app/services/try_user_transition_from_waiting_service.rb b/app/services/try_user_transition_from_waiting_service.rb
index 078780370..2b03d6f5b 100644
--- a/app/services/try_user_transition_from_waiting_service.rb
+++ b/app/services/try_user_transition_from_waiting_service.rb
@@ -6,6 +6,6 @@ def self.call(user)
return if user.complete
- user.ineligible
+ user.insufficient
end
end
diff --git a/app/services/user_state_transition_segment_service.rb b/app/services/user_state_transition_segment_service.rb
index 3110e0b00..47f683a00 100644
--- a/app/services/user_state_transition_segment_service.rb
+++ b/app/services/user_state_transition_segment_service.rb
@@ -13,7 +13,7 @@ def call(user, transition)
when :complete then complete(user)
when :retry_complete then complete(user)
when :incomplete then incomplete(user)
- when :ineligible then ineligible(user)
+ when :insufficient then insufficient(user)
when :won then won(user, transition)
when :gifted then gifted(user)
end
@@ -43,9 +43,9 @@ def incomplete(user)
segment(user).identify(state: 'incomplete')
end
- def ineligible(user)
- segment(user).track('user_ineligible')
- segment(user).identify(state: 'ineligible')
+ def insufficient(user)
+ segment(user).track('user_insufficient')
+ segment(user).identify(state: 'insufficient')
end
def won(user, transition)
diff --git a/app/views/users/show/_timeline.html.erb b/app/views/users/show/_timeline.html.erb
index fe6fc8000..89a4f2d05 100644
--- a/app/views/users/show/_timeline.html.erb
+++ b/app/views/users/show/_timeline.html.erb
@@ -9,77 +9,14 @@
<% scoring_pull_requests.map do |pr| %>
-
-
- <% if pr.eligible? && show_congratulations %>
-
-
- <%= image_tag 'eligible.png' %>
-
-
- <% elsif pr.spammy? %>
-
-
- <%= image_tag 'spam.png' %>
-
-
- <% elsif pr.eligible? %>
-
-
- <%= image_tag 'pending.png' %>
-
-
- <% else %>
-
-
- <%= image_tag 'ineligible.png' %>
-
-
- <% end %>
- |
-
-
-
- <% if pr.eligible? && show_congratulations %>
-
-
- <%= image_tag 'eligible.png' %>
-
-
- <% elsif pr.spammy? %>
-
-
- <%= image_tag 'spam.png' %>
-
-
- <% elsif pr.eligible? %>
-
-
- <%= image_tag 'pending.png' %>
-
-
- <% else %>
-
-
- <%= image_tag 'ineligible.png' %>
-
-
- <% end %>
- <%= DateTime.parse(pr.created_at).to_formatted_s(:long) %>
-
-
- You submitted <%= pr.title %> to <%= pr.name_with_owner %>
-
-
- |
-
+ <%= render partial: 'users/show/pr/pr', locals: { pr: pr } %>
<% end %>
+
<% if show_timer %>
- <%= user.waiting_since.to_formatted_s(:long) %>
- You're almost there!
+ You're almost there!
🎉 You’ve submitted the four required PRs for the Hacktoberfest challenge! So long as your PRs successfully pass the review period, they’ll become valid in
— which means you’ll have officially completed this year’s challenge!
@@ -87,86 +24,26 @@
|
<% end %>
+
<% if show_congratulations %>
- You did it! 🎉
+ You did it! 🎉
You've made four eligible PRs for Hacktoberfest — which means you officially completed this year’s challenge!
|
<% end %>
+
<% if non_scoring_pull_requests.any? %>
<% non_scoring_pull_requests.map do |pr| %>
-
-
- <% if pr.eligible? && show_congratulations %>
-
-
- <%= image_tag 'bonus.png' %>
-
-
- <% elsif pr.spammy? %>
-
-
- <%= image_tag 'spam.png' %>
-
-
- <% elsif pr.eligible? %>
-
-
- <%= image_tag 'pending.png' %>
-
-
- <% else %>
-
-
- <%= image_tag 'ineligible.png' %>
-
-
- <% end %>
- |
-
-
-
- <% if pr.eligible? && show_congratulations %>
-
-
- <%= image_tag 'bonus.png' %>
-
-
- <% elsif pr.spammy? %>
-
-
- <%= image_tag 'spam.png' %>
-
-
- <% elsif pr.eligible? %>
-
-
- <%= image_tag 'pending.png' %>
-
-
- <% else %>
-
-
- <%= image_tag 'ineligible.png' %>
-
-
- <% end %>
- <%= DateTime.parse(pr.created_at).to_formatted_s(:long) %>
-
-
- You submitted <%= pr.title %> to <%= pr.name_with_owner %>
-
-
- |
-
+ <%= render partial: 'users/show/pr/pr', locals: { pr: pr } %>
<% end %>
<% end %>
+
Legend
@@ -235,11 +112,4 @@
<% end %>
- <% if user.waiting? %>
-
- <% end %>
diff --git a/app/views/users/show/pr/_icon.html.erb b/app/views/users/show/pr/_icon.html.erb
new file mode 100644
index 000000000..284079c8b
--- /dev/null
+++ b/app/views/users/show/pr/_icon.html.erb
@@ -0,0 +1,25 @@
+<% if pr.invalid_label? %>
+
+
+ <%= image_tag 'ineligible.png' %>
+
+
+<% elsif pr.spam_repo? %>
+
+
+ <%= image_tag 'spam.png' %>
+
+
+<% elsif pr.eligible? %>
+
+
+ <%= image_tag 'eligible.png' %>
+
+
+<% elsif pr.waiting? %>
+
+
+ <%= image_tag 'pending.png' %>
+
+
+<% end %>
diff --git a/app/views/users/show/pr/_pr.html.erb b/app/views/users/show/pr/_pr.html.erb
new file mode 100644
index 000000000..8962afae3
--- /dev/null
+++ b/app/views/users/show/pr/_pr.html.erb
@@ -0,0 +1,26 @@
+
+
+ <%= render partial: 'users/show/pr/icon', locals: { pr: pr } %>
+ |
+
+
+
+ <%= render partial: 'users/show/pr/icon', locals: { pr: pr } %>
+ <%= DateTime.parse(pr.created_at).to_formatted_s(:long) %>
+
+
+ You submitted <%= pr.title %> to <%= pr.name_with_owner %>
+
+ <% if pr.waiting? %>
+ <%= pr.waiting_since.to_formatted_s(:long) %>
+ <% end %>
+
+ |
+
+
+
diff --git a/config/environments/test.rb b/config/environments/test.rb
index 06bae83ad..df0a7790c 100644
--- a/config/environments/test.rb
+++ b/config/environments/test.rb
@@ -26,4 +26,8 @@
config.action_mailer.delivery_method = :test
config.active_support.deprecation = :stderr
+
+ config.log_level = :warn
+
+ config.active_record.verbose_query_logs = false
end
diff --git a/db/migrate/20200730142737_add_waiting_since_to_pull_request.rb b/db/migrate/20200730142737_add_waiting_since_to_pull_request.rb
new file mode 100644
index 000000000..85be6cf15
--- /dev/null
+++ b/db/migrate/20200730142737_add_waiting_since_to_pull_request.rb
@@ -0,0 +1,7 @@
+# frozen_string_literal: true
+
+class AddWaitingSinceToPullRequest < ActiveRecord::Migration[5.2]
+ def change
+ add_column :pull_requests, :waiting_since, :datetime
+ end
+end
diff --git a/db/migrate/20200730145127_add_state_to_pull_request.rb b/db/migrate/20200730145127_add_state_to_pull_request.rb
new file mode 100644
index 000000000..3a71ac0a3
--- /dev/null
+++ b/db/migrate/20200730145127_add_state_to_pull_request.rb
@@ -0,0 +1,7 @@
+# frozen_string_literal: true
+
+class AddStateToPullRequest < ActiveRecord::Migration[5.2]
+ def change
+ add_column :pull_requests, :state, :string
+ end
+end
diff --git a/db/migrate/20200730161621_make_gh_id_string_in_pull_request.rb b/db/migrate/20200730161621_make_gh_id_string_in_pull_request.rb
new file mode 100644
index 000000000..13f4461ed
--- /dev/null
+++ b/db/migrate/20200730161621_make_gh_id_string_in_pull_request.rb
@@ -0,0 +1,7 @@
+# frozen_string_literal: true
+
+class MakeGhIdStringInPullRequest < ActiveRecord::Migration[5.2]
+ def change
+ change_column :pull_requests, :gh_id, :string
+ end
+end
diff --git a/db/migrate/20200730174753_remove_waiting_since_from_user.rb b/db/migrate/20200730174753_remove_waiting_since_from_user.rb
new file mode 100644
index 000000000..a12281853
--- /dev/null
+++ b/db/migrate/20200730174753_remove_waiting_since_from_user.rb
@@ -0,0 +1,7 @@
+# frozen_string_literal: true
+
+class RemoveWaitingSinceFromUser < ActiveRecord::Migration[5.2]
+ def change
+ remove_column :users, :waiting_since, :datetime
+ end
+end
diff --git a/db/schema.rb b/db/schema.rb
index 26a9c8975..0c3f84535 100644
--- a/db/schema.rb
+++ b/db/schema.rb
@@ -10,7 +10,7 @@
#
# It's strongly recommended that you check this file into your version control system.
-ActiveRecord::Schema.define(version: 2019_10_28_180239) do
+ActiveRecord::Schema.define(version: 2020_07_30_174753) do
# These are extensions that must be enabled in order to support this database
enable_extension "plpgsql"
@@ -46,9 +46,11 @@
end
create_table "pull_requests", force: :cascade do |t|
- t.integer "gh_id"
+ t.string "gh_id"
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
+ t.datetime "waiting_since"
+ t.string "state"
end
create_table "repo_stats", force: :cascade do |t|
@@ -117,7 +119,6 @@
t.boolean "terms_acceptance", default: false
t.boolean "marketing_emails", default: false
t.string "state"
- t.datetime "waiting_since"
t.jsonb "receipt"
end
diff --git a/docker-compose.yml b/docker-compose.yml
index cddd7a727..cac2450c0 100644
--- a/docker-compose.yml
+++ b/docker-compose.yml
@@ -25,6 +25,8 @@ services:
POSTGRES_PASSWORD: $HACKTOBERFEST_DATABASE_PASSWORD
volumes:
- db_data:/var/lib/postgresql/data
+ ports:
+ - "5432:5432"
networks:
- app-network
@@ -67,4 +69,3 @@ volumes:
networks:
app-network:
driver: bridge
-
\ No newline at end of file
diff --git a/spec/factories/user.rb b/spec/factories/user.rb
index 42fd70ec5..9747bcab5 100644
--- a/spec/factories/user.rb
+++ b/spec/factories/user.rb
@@ -20,10 +20,9 @@
trait :waiting do
state { 'waiting' }
- waiting_since { Time.zone.today }
after :build do |user|
- allow(user).to receive(:eligible_pull_requests_count).and_return(4)
+ PullRequestFilterHelper.pr_stub_helper(user, PR_DATA[:immature_array])
end
end
@@ -34,8 +33,7 @@
receipt { { "test": 'test' }.to_json }
after :build do |user|
- allow(user).to receive(:eligible_pull_requests_count).and_return(4)
- allow(user).to receive(:waiting_since).and_return(Time.zone.today - 8)
+ PullRequestFilterHelper.pr_stub_helper(user, PR_DATA[:mature_array])
end
end
@@ -44,9 +42,10 @@
receipt { { "test": 'test' }.to_json }
after :build do |user|
- allow(user).to receive(:hacktoberfest_ended?).and_return(true)
- allow(user).to receive(:eligible_pull_requests_count).and_return(3)
- allow(user).to receive(:waiting_since).and_return(Time.zone.today - 8)
+ PullRequestFilterHelper.pr_stub_helper(
+ user,
+ PR_DATA[:mature_array][0...3]
+ )
end
end
diff --git a/spec/models/pull_request_spec.rb b/spec/models/pull_request_spec.rb
new file mode 100644
index 000000000..61a0694cf
--- /dev/null
+++ b/spec/models/pull_request_spec.rb
@@ -0,0 +1,234 @@
+# frozen_string_literal: true
+
+require 'rails_helper'
+
+RSpec.describe PullRequest, type: :model do
+ describe '#labelled_invalid?' do
+ context 'Pull request has a label for "invalid"' do
+ let(:pr) { pr_helper(INVALID_LABEL_PR) }
+
+ it 'is considered labelled invalid' do
+ expect(pr.labelled_invalid?).to eq(true)
+ end
+
+ context 'Pull request is merged' do
+ let(:pr) { pr_helper(ELIGIBLE_INVALID_MERGED_PR) }
+
+ it 'is not considered labelled invalid' do
+ expect(pr.labelled_invalid?).to eq(false)
+ end
+ end
+ end
+
+ context 'Pull request has a label for "❌ Invalid"' do
+ let(:pr) { pr_helper(INVALID_EMOJI_LABEL_PR) }
+
+ it 'is considered labelled labelled invalid' do
+ expect(pr.labelled_invalid?).to eq(true)
+ end
+ end
+
+ context 'Pull request has no labels' do
+ let(:pr) { pr_helper(ELIGIBLE_PR) }
+
+ it 'is not considered labelled invalid' do
+ expect(pr.labelled_invalid?).to eq(false)
+ end
+ end
+ end
+
+ describe '#spam_repo' do
+ # TODO: need to stub SpamRepositoryService
+ # PR is in spam repo initially
+ # PR is waiting, then becomes in spam repo
+ # PR is eligible, then becomes in spam repo
+ end
+
+ describe '#invalid_label' do
+ context 'Pull request is labelled invalid initially' do
+ let(:pr) { pr_helper(INVALID_LABEL_PR) }
+
+ it 'is put it in the invalid_label state' do
+ expect(pr.state).to eq('invalid_label')
+ end
+ end
+
+ context 'Pull request is waiting' do
+ let(:pr) { pr_helper(IMMATURE_PR) }
+
+ it 'is in the waiting state initially' do
+ expect(pr.state).to eq('waiting')
+ end
+
+ context 'Pull request becomes labelled invalid' do
+ before do
+ stub_helper(pr, INVALID_LABEL_PR, 'id' => pr.github_id)
+ pr.check_state
+ end
+
+ it 'is put it in the invalid_label state' do
+ expect(pr.state).to eq('invalid_label')
+ end
+
+ context 'Seven days pass from pull request creation' do
+ before do
+ travel_to pr.waiting_since + 7.days
+ pr.check_state
+ end
+
+ it 'remains in the invalid_label state' do
+ expect(pr.state).to eq('invalid_label')
+ end
+
+ after { travel_back }
+ end
+ end
+ end
+
+ context 'Pull request is eligible' do
+ let(:pr) { pr_helper(ELIGIBLE_PR) }
+
+ it 'is in the eligible state initially' do
+ expect(pr.state).to eq('eligible')
+ end
+
+ context 'Pull request becomes labelled invalid' do
+ before do
+ stub_helper(pr, INVALID_LABEL_PR, 'id' => pr.github_id)
+ pr.check_state
+ end
+
+ it 'remains in the eligible state' do
+ expect(pr.state).to eq('eligible')
+ end
+ end
+ end
+ end
+
+ describe '#waiting' do
+ context 'Pull request is valid and created less than seven days ago' do
+ let(:pr) { pr_helper(IMMATURE_PR) }
+
+ it 'is put it in the waiting state' do
+ expect(pr.state).to eq('waiting')
+ end
+
+ it 'has the waiting_since date set to the created date' do
+ expect(pr.waiting_since).to eq(pr.created_at)
+ end
+ end
+
+ context 'Pull request is in an invalid repo initially' do
+ # TODO: need to stub SpamRepositoryService
+ end
+
+ context 'Pull request is labelled invalid initially' do
+ let(:pr) { pr_helper(INVALID_LABEL_PR) }
+
+ it 'is in the invalid_label state initially' do
+ expect(pr.state).to eq('invalid_label')
+ end
+
+ it 'has no set waiting_since' do
+ expect(pr.waiting_since).to be_nil
+ end
+
+ context 'Pull request has invalid label removed' do
+ before do
+ freeze_time
+
+ stub_helper(pr, IMMATURE_PR, 'id' => pr.github_id)
+ pr.check_state
+ end
+
+ it 'is put it in the waiting state' do
+ expect(pr.state).to eq('waiting')
+ end
+
+ it 'has the waiting_since date set to now' do
+ expect(pr.waiting_since).to eq(Time.zone.now)
+ expect(pr.waiting_since).to_not eq(pr.created_at)
+ end
+
+ after { travel_back }
+ end
+ end
+
+ context 'Pull request is labelled invalid initially' do
+ let(:pr) { pr_helper(INVALID_LABEL_PR) }
+
+ it 'is in the invalid_label state initially' do
+ expect(pr.state).to eq('invalid_label')
+ end
+
+ it 'has no set waiting_since' do
+ expect(pr.waiting_since).to be_nil
+ end
+
+ context 'Pull request is merged' do
+ before do
+ freeze_time
+
+ stub_helper(pr, IMMATURE_INVALID_MERGED_PR, 'id' => pr.github_id)
+ pr.check_state
+ end
+
+ it 'is put it in the waiting state' do
+ expect(pr.state).to eq('waiting')
+ end
+
+ it 'has the waiting_since date set to now' do
+ expect(pr.waiting_since).to eq(Time.zone.now)
+ expect(pr.waiting_since).to_not eq(pr.created_at)
+ end
+
+ after { travel_back }
+ end
+ end
+ end
+
+ describe '#eligible' do
+ context 'Pull request is valid and created over seven days ago' do
+ let(:pr) { pr_helper(ELIGIBLE_PR) }
+
+ it 'is put it in the eligible state' do
+ expect(pr.state).to eq('eligible')
+ end
+ end
+
+ context 'Pull request is valid and created less than seven days ago' do
+ let(:pr) { pr_helper(IMMATURE_PR) }
+
+ it 'is put it in the waiting state' do
+ expect(pr.state).to eq('waiting')
+ end
+
+ it 'has the waiting_since date set to the created date' do
+ expect(pr.waiting_since).to eq(pr.created_at)
+ end
+
+ context 'Seven days pass from pull request creation' do
+ before do
+ travel_to pr.waiting_since + 7.days
+ pr.check_state
+ end
+
+ it 'is put it in the eligible state' do
+ expect(pr.state).to eq('eligible')
+ end
+
+ after { travel_back }
+ end
+ end
+ end
+
+ def pr_helper(hash)
+ PullRequest.delete_all
+ PullRequest.from_github_pull_request(github_pull_request(hash))
+ end
+
+ def stub_helper(target, hash, merge = {})
+ allow(target).to receive(:github_pull_request)
+ .and_return(github_pull_request(hash.merge(merge)))
+ end
+end
diff --git a/spec/models/user_spec.rb b/spec/models/user_spec.rb
index b8bc185d1..21fd2f4c6 100644
--- a/spec/models/user_spec.rb
+++ b/spec/models/user_spec.rb
@@ -18,11 +18,11 @@
user.register
end
- it 'disallows the user to enter the registered state', :vcr do
+ it 'disallows the user to enter the registered state' do
expect(user.state).to eq('new')
end
- it 'applies the correct errors to the user object', :vcr do
+ it 'applies the correct errors to the user object' do
expect(user.errors.messages[:terms_acceptance].first)
.to eq('must be accepted')
end
@@ -37,11 +37,11 @@
user.register
end
- it 'disallows the user to enter the registered state', :vcr do
+ it 'disallows the user to enter the registered state' do
expect(user.state).to eq('new')
end
- it 'applies the correct errors to the user object', :vcr do
+ it 'applies the correct errors to the user object' do
expect(user.errors.messages[:email].first).to eq("can't be blank")
end
end
@@ -55,11 +55,11 @@
user.register
end
- it 'disallows the user to enter the registered state', :vcr do
+ it 'disallows the user to enter the registered state' do
expect(user.state).to eq('new')
end
- it 'adds the correct errors to the user object', :vcr do
+ it 'adds the correct errors to the user object' do
expect(user.errors.messages[:email].first).to eq("can't be blank")
expect(user.errors.messages[:terms_acceptance].first)
.to eq('must be accepted')
@@ -76,11 +76,11 @@
user.register
end
- it 'allows the user to enter the registered state', :vcr do
+ it 'allows the user to enter the registered state' do
expect(user.state).to eq('registered')
end
- it 'persists the registered state', :vcr do
+ it 'persists the registered state' do
user.reload
expect(user.state).to eq('registered')
end
@@ -92,36 +92,31 @@
let(:user) { FactoryBot.create(:user) }
before do
- allow(user).to receive(:eligible_pull_requests_count).and_return(4)
+ pr_stub_helper(user, PR_DATA[:immature_array])
expect(UserStateTransitionSegmentService)
.to receive(:wait).and_return(true)
- prs = pull_request_data(PR_DATA[:mature_array]).map do |pr|
- PullRequest.new(pr)
- end
-
- allow(user).to receive(:scoring_pull_requests).and_return(prs)
user.wait
end
- it 'allows the user to enter the waiting state', :vcr do
+ it 'allows the user to enter the waiting state' do
expect(user.state).to eq('waiting')
end
- it 'updates the waiting_since correctly', :vcr do
- prs = pull_request_data(PR_DATA[:mature_array]).map do |pr|
- PullRequest.new(pr)
- end
-
- latest_pr = prs.max_by do |pr|
- pr.github_pull_request.created_at
- end
-
- expect(user.waiting_since)
- .to eq(Time.zone.parse(latest_pr.github_pull_request.created_at))
- end
-
- it 'persists the waiting state', :vcr do
+ # it 'updates the waiting_since correctly' do
+ # prs = pull_request_data(PR_DATA[:mature_array]).map do |pr|
+ # PullRequest.from_github_pull_request(pr)
+ # end
+ #
+ # latest_pr = prs.max_by do |pr|
+ # pr.github_pull_request.created_at
+ # end
+ #
+ # expect(user.waiting_since)
+ # .to eq(Time.zone.parse(latest_pr.github_pull_request.created_at))
+ # end
+
+ it 'persists the waiting state' do
user.reload
expect(user.state).to eq('waiting')
end
@@ -131,19 +126,19 @@
let(:user) { FactoryBot.create(:user) }
before do
- allow(user).to receive(:eligible_pull_requests_count).and_return(3)
+ pr_stub_helper(user, PR_DATA[:immature_array][0...3])
expect(UserStateTransitionSegmentService).to_not receive(:call)
user.wait
end
- it 'disallows the user to enter the waiting state', :vcr do
+ it 'disallows the user to enter the waiting state' do
expect(user.state).to eq('registered')
end
- it 'adds the correct errors to the user', :vcr do
- expect(user.errors.messages[:sufficient_eligible_prs?].first)
- .to include('user does not have sufficient eligible prs')
+ it 'adds the correct errors to the user' do
+ expect(user.errors.messages[:state].first)
+ .to include('cannot transition via "wait"')
end
end
end
@@ -151,30 +146,20 @@
describe '#complete' do
let(:user) { FactoryBot.create(:user, :waiting) }
- before do
- prs = pull_request_data(PR_DATA[:mature_array]).map do |pr|
- PullRequest.new(pr)
- end
-
- allow(user).to receive(:scoring_pull_requests).and_return(prs)
- end
-
context 'the user has 4 eligible PRs and has been waiting for 7 days' do
before do
- allow(user).to receive(:eligible_pull_requests_count).and_return(4)
- allow(user).to receive(:waiting_since).and_return(Time.zone.today - 8)
-
+ pr_stub_helper(user, PR_DATA[:mature_array])
expect(UserStateTransitionSegmentService)
.to receive(:complete).and_return(true)
user.complete
end
- it 'allows the user to enter the completed state', :vcr do
+ it 'allows the user to enter the completed state' do
expect(user.state).to eq('completed')
end
- it 'persists the completed state', :vcr do
+ it 'persists the completed state' do
user.reload
expect(user.state).to eq('completed')
end
@@ -182,24 +167,23 @@
it 'persists a receipt of the scoring prs' do
user.reload
expect(user.receipt)
- .to eq(JSON.parse(user.scoring_pull_requests.to_json))
+ .to eq(JSON.parse(user.scoring_pull_requests_receipt.to_json))
end
end
context 'user has 4 eligible PRs, has been waiting 7 days - no receipt' do
before do
- allow(user).to receive(:eligible_pull_requests_count).and_return(4)
- allow(user).to receive(:waiting_since).and_return(Time.zone.today - 8)
+ pr_stub_helper(user, PR_DATA[:mature_array])
allow(user).to receive(:receipt).and_return(nil)
user.complete
end
- it 'disallows the user to enter the completed state', :vcr do
+ it 'disallows the user to enter the completed state' do
expect(user.state).to eq('waiting')
end
- it 'adds the correct errors to user', :vcr do
+ it 'adds the correct errors to user' do
expect(user.errors.messages[:receipt].first)
.to include("can't be blank")
end
@@ -207,78 +191,58 @@
context 'the user has 4 eligible PRs but has not been waiting for 7 days' do
before do
- allow(user).to receive(:eligible_pull_requests_count).and_return(4)
- allow(user).to receive(:waiting_since).and_return(Time.zone.today - 2)
- expect(UserStateTransitionSegmentService).to_not receive(:call)
-
- user.complete
- end
-
- it 'disallows the user to enter the completed state', :vcr do
- expect(user.state).to eq('waiting')
- end
-
- it 'adds the correct errors to user', :vcr do
- expect(user.errors.messages[:won_hacktoberfest?].first)
- .to include('user has not met all winning conditions')
- end
- end
-
- context 'user has been waiting for 7 days & has less than 4 eligible prs' do
- before do
- allow(user).to receive(:eligible_pull_requests_count).and_return(3)
- allow(user).to receive(:waiting_since).and_return(Time.zone.today - 8)
+ pr_stub_helper(user, PR_DATA[:immature_array])
expect(UserStateTransitionSegmentService).to_not receive(:call)
user.complete
end
- it 'disallows the user to enter the completed state', :vcr do
+ it 'disallows the user to enter the completed state' do
expect(user.state).to eq('waiting')
end
- it 'adds the correct errors to user', :vcr do
- expect(user.errors.messages[:won_hacktoberfest?].first)
- .to include('user has not met all winning conditions')
+ it 'adds the correct errors to user' do
+ expect(user.errors.messages[:state].first)
+ .to include('cannot transition via "complete"')
end
end
context 'the user neither 4 eligible PRs nor has been waiting for 7 days' do
before do
- allow(user).to receive(:eligible_pull_requests_count).and_return(3)
- allow(user).to receive(:waiting_since).and_return(Time.zone.today - 2)
+ pr_stub_helper(user, PR_DATA[:immature_array][0...3])
expect(UserStateTransitionSegmentService).to_not receive(:call)
user.complete
end
- it 'disallows the user to enter the completed state', :vcr do
+ it 'disallows the user to enter the completed state' do
expect(user.state).to eq('waiting')
end
- it 'adds the correct errors to user', :vcr do
- expect(user.errors.messages[:won_hacktoberfest?].first)
- .to include('user has not met all winning conditions')
+ it 'adds the correct errors to user' do
+ expect(user.errors.messages[:state].first)
+ .to include('cannot transition via "complete"')
end
end
end
- describe '#ineligible' do
+ describe '#insufficient' do
context 'waiting user has dropped below 4 prs' do
let(:user) { FactoryBot.create(:user, :waiting) }
before do
- allow(user).to receive(:eligible_pull_requests_count).and_return(3)
+ pr_stub_helper(user, PR_DATA[:immature_array][0...3])
expect(UserStateTransitionSegmentService)
- .to receive(:ineligible).and_return(true)
- user.ineligible
+ .to receive(:insufficient).and_return(true)
+
+ user.insufficient
end
- it 'transitions the user back to the registered state', :vcr do
+ it 'transitions the user back to the registered state' do
expect(user.state).to eq('registered')
end
- it 'persists the registered state', :vcr do
+ it 'persists the registered state' do
user.reload
expect(user.state).to eq('registered')
end
@@ -286,32 +250,23 @@
end
describe '#retry_complete' do
+ before { travel_to Time.zone.parse(ENV['END_DATE']) + 1.day }
let(:user) { FactoryBot.create(:user, :incompleted) }
- before do
- prs = pull_request_data(PR_DATA[:mature_array]).map do |pr|
- PullRequest.new(pr)
- end
-
- allow(user).to receive(:scoring_pull_requests).and_return(prs)
- end
-
context 'the user has 4 eligible PRs and has been waiting for 7 days' do
before do
- allow(user).to receive(:eligible_pull_requests_count).and_return(4)
- allow(user).to receive(:waiting_since).and_return(Time.zone.today - 8)
-
+ pr_stub_helper(user, PR_DATA[:mature_array])
expect(UserStateTransitionSegmentService)
.to receive(:complete).and_return(true)
user.retry_complete
end
- it 'allows the user to enter the completed state', :vcr do
+ it 'allows the user to enter the completed state' do
expect(user.state).to eq('completed')
end
- it 'persists the completed state', :vcr do
+ it 'persists the completed state' do
user.reload
expect(user.state).to eq('completed')
end
@@ -319,85 +274,83 @@
it 'persists a receipt of the scoring prs' do
user.reload
expect(user.receipt)
- .to eq(JSON.parse(user.scoring_pull_requests.to_json))
+ .to eq(JSON.parse(user.scoring_pull_requests_receipt.to_json))
end
end
context 'user has 4 eligible PRs, has been waiting 7 days - no receipt' do
before do
- allow(user).to receive(:eligible_pull_requests_count).and_return(4)
- allow(user).to receive(:waiting_since).and_return(Time.zone.today - 8)
+ pr_stub_helper(user, PR_DATA[:mature_array])
allow(user).to receive(:receipt).and_return(nil)
user.retry_complete
end
- it 'disallows the user to enter the completed state', :vcr do
+ it 'disallows the user to enter the completed state' do
expect(user.state).to eq('incompleted')
end
- it 'adds the correct errors to user', :vcr do
+ it 'adds the correct errors to user' do
expect(user.errors.messages[:receipt].first)
.to include("can't be blank")
end
end
- context 'the user has 4 eligible PRs but has not been waiting for 7 days' do
+ context 'the user has 4 waiting PRs but has not been waiting for 7 days' do
before do
- allow(user).to receive(:eligible_pull_requests_count).and_return(4)
- allow(user).to receive(:waiting_since).and_return(Time.zone.today - 2)
+ pr_stub_helper(user, PR_DATA[:late_array])
expect(UserStateTransitionSegmentService).to_not receive(:call)
user.retry_complete
end
- it 'disallows the user to enter the completed state', :vcr do
+ it 'disallows the user to enter the completed state' do
expect(user.state).to eq('incompleted')
end
- it 'adds the correct errors to user', :vcr do
- expect(user.errors.messages[:won_hacktoberfest?].first)
- .to include('user has not met all winning conditions')
+ it 'adds the correct errors to user' do
+ expect(user.errors.messages[:sufficient_eligible_prs?].first)
+ .to include('user does not have sufficient eligible prs')
end
end
context 'user has been waiting for 7 days & has less than 4 eligible prs' do
before do
- allow(user).to receive(:eligible_pull_requests_count).and_return(3)
- allow(user).to receive(:waiting_since).and_return(Time.zone.today - 8)
+ pr_stub_helper(user, PR_DATA[:mature_array][0...3])
expect(UserStateTransitionSegmentService).to_not receive(:call)
user.retry_complete
end
- it 'disallows the user to enter the completed state', :vcr do
+ it 'disallows the user to enter the completed state' do
expect(user.state).to eq('incompleted')
end
- it 'adds the correct errors to user', :vcr do
- expect(user.errors.messages[:won_hacktoberfest?].first)
- .to include('user has not met all winning conditions')
+ it 'adds the correct errors to user' do
+ expect(user.errors.messages[:sufficient_eligible_prs?].first)
+ .to include('user does not have sufficient eligible prs')
end
end
- context 'the user neither 4 eligible PRs nor has been waiting for 7 days' do
+ context 'the user neither 4 waiting PRs nor has been waiting for 7 days' do
before do
- allow(user).to receive(:eligible_pull_requests_count).and_return(3)
- allow(user).to receive(:waiting_since).and_return(Time.zone.today - 2)
+ pr_stub_helper(user, PR_DATA[:late_array][0...3])
expect(UserStateTransitionSegmentService).to_not receive(:call)
user.retry_complete
end
- it 'disallows the user to enter the completed state', :vcr do
+ it 'disallows the user to enter the completed state' do
expect(user.state).to eq('incompleted')
end
- it 'adds the correct errors to user', :vcr do
- expect(user.errors.messages[:won_hacktoberfest?].first)
- .to include('user has not met all winning conditions')
+ it 'adds the correct errors to user' do
+ expect(user.errors.messages[:sufficient_eligible_prs?].first)
+ .to include('user does not have sufficient eligible prs')
end
end
+
+ after { travel_back }
end
describe '#incomplete' do
@@ -405,6 +358,7 @@
let(:user) { FactoryBot.create(:user, :completed) }
before do
+ pr_stub_helper(user, [])
expect(UserStateTransitionSegmentService).to_not receive(:call)
user.incomplete
end
@@ -423,57 +377,47 @@
let(:user) { FactoryBot.create(:user) }
before do
- allow(user).to receive(:hacktoberfest_ended?).and_return(false)
+ pr_stub_helper(user, [])
expect(UserStateTransitionSegmentService).to_not receive(:call)
user.incomplete
end
- it 'disallows the user to enter the incompleted state', :vcr do
+ it 'disallows the user to enter the incompleted state' do
expect(user.state).to eq('registered')
end
- it 'adds the correct errors to the user', :vcr do
+ it 'adds the correct errors to the user' do
expect(user.errors.messages[:hacktoberfest_ended?].first)
.to include('hacktoberfest has not yet ended')
end
end
- context 'hacktoberfest has ended', :vcr do
- context 'user has insufficient eligible prs' do
- before do
- prs = pull_request_data(
- [PR_DATA[:mature_array][0],
- PR_DATA[:mature_array][1]]
- ).map do |pr|
- PullRequest.new(pr)
- end
-
- allow(user).to receive(:scoring_pull_requests).and_return(prs)
- end
+ context 'hacktoberfest has ended' do
+ before { travel_to Time.zone.parse(ENV['END_DATE']) + 8.days }
+ context 'user has insufficient eligible prs' do
let(:user) { FactoryBot.create(:user) }
before do
- allow(user).to receive(:hacktoberfest_ended?).and_return(true)
- allow(user).to receive(:sufficient_eligible_prs?).and_return(false)
+ pr_stub_helper(user, PR_DATA[:mature_array][0...3])
expect(UserStateTransitionSegmentService)
.to receive(:incomplete).and_return(true)
user.incomplete
end
- it 'transitions the user to the incomplete state', :vcr do
+ it 'transitions the user to the incomplete state' do
expect(user.state).to eq('incompleted')
end
- it 'persists the incompleted state', :vcr do
+ it 'persists the incompleted state' do
user.reload
expect(user.state).to eq('incompleted')
end
- it 'persists a receipt of the scoring prs', :vcr do
+ it 'persists a receipt of the scoring prs' do
user.reload
expect(user.receipt)
- .to eq(JSON.parse(user.scoring_pull_requests.to_json))
+ .to eq(JSON.parse(user.scoring_pull_requests_receipt.to_json))
end
end
@@ -481,18 +425,16 @@
let(:user) { FactoryBot.create(:user, :waiting) }
before do
- allow(user).to receive(:hacktoberfest_ended?).and_return(true)
- allow(user).to receive(:sufficient_eligible_prs?).and_return(true)
+ pr_stub_helper(user, PR_DATA[:mature_array][0...3])
allow(user).to receive(:receipt).and_return(nil)
-
user.incomplete
end
- it 'does not transition the user to the incomplete state', :vcr do
+ it 'does not transition the user to the incomplete state' do
expect(user.state).to eq('waiting')
end
- it 'persists the waiting state', :vcr do
+ it 'persists the waiting state' do
user.reload
expect(user.state).to eq('waiting')
end
@@ -502,20 +444,21 @@
let(:user) { FactoryBot.create(:user, :waiting) }
before do
- allow(user).to receive(:hacktoberfest_ended?).and_return(true)
- allow(user).to receive(:sufficient_eligible_prs?).and_return(true)
+ pr_stub_helper(user, PR_DATA[:mature_array])
user.incomplete
end
- it 'does not transition the user to the incomplete state', :vcr do
+ it 'does not transition the user to the incomplete state' do
expect(user.state).to eq('waiting')
end
- it 'persists the waiting state', :vcr do
+ it 'persists the waiting state' do
user.reload
expect(user.state).to eq('waiting')
end
end
+
+ after { travel_back }
end
end
@@ -526,6 +469,7 @@
end
context 'the user is in the incompleted state' do
+ before { travel_to Time.zone.parse(ENV['END_DATE']) + 8.days }
let(:user) { FactoryBot.create(:user, :incompleted) }
context 'there are shirt coupons available' do
@@ -557,6 +501,8 @@
expect(user.state).to eq('incompleted')
end
end
+
+ after { travel_back }
end
end
@@ -565,6 +511,7 @@
allow(UserStateTransitionSegmentService)
.to receive(:won).and_return(true)
end
+
context 'the user is in the completed state' do
let(:user) { FactoryBot.create(:user, :completed) }
diff --git a/spec/presenters/profile_page_presenter_spec.rb b/spec/presenters/profile_page_presenter_spec.rb
index 510ccb848..759fac400 100644
--- a/spec/presenters/profile_page_presenter_spec.rb
+++ b/spec/presenters/profile_page_presenter_spec.rb
@@ -15,10 +15,7 @@
let(:incompleted_user_presenter) { ProfilePagePresenter.new(incomplete_user) }
context 'Hacktoberfest is in pre launch' do
- before do
- allow(Hacktoberfest).to receive(:pre_launch?).and_return(true)
- allow(Hacktoberfest).to receive(:ended?).and_return(false)
- end
+ before { travel_to Time.zone.parse(ENV['START_DATE']) - 7.days }
it 'displays the pre_launch partial' do
expect(profile_presenter.display_pre_launch?).to eq(true)
@@ -35,14 +32,12 @@
it 'does not display the waiting for prize partial' do
expect(waiting_user_presenter.display_waiting_for_prize?).to eq(false)
end
+
+ after { travel_back }
end
context 'Hacktoberfest has ended and the user has won' do
- before do
- allow(Hacktoberfest).to receive(:ended?).and_return(true)
- allow(Hacktoberfest).to receive(:pre_launch?).and_return(false)
- allow(shirt_winner).to receive(:won_hacktoberfest?).and_return(true)
- end
+ before { travel_to Time.zone.parse(ENV['END_DATE']) + 8.days }
it 'displays the coupons partial for a shirt winner' do
expect(won_shirt_presenter.display_coupon?).to eq(true)
@@ -63,6 +58,8 @@
it 'does not display the display the waiting for prize partial' do
expect(waiting_user_presenter.display_waiting_for_prize?).to eq(false)
end
+
+ after { travel_back }
end
context 'the user has won a shirt' do
@@ -78,13 +75,7 @@
end
context 'Hacktoberfest has ended the user is incomplete' do
- before do
- allow(Hacktoberfest).to receive(:end_date).and_return(Time.zone.today - 7)
- allow(Hacktoberfest).to receive(:ended?).and_return(true)
- allow(Hacktoberfest).to receive(:pre_launch?).and_return(false)
- allow(incomplete_user).to receive(:hacktoberfest_ended?).and_return(true)
- allow(incomplete_user).to receive(:won_hacktoberfest?).and_return(false)
- end
+ before { travel_to Time.zone.parse(ENV['END_DATE']) + 8.days }
it 'displays the thank you partial' do
expect(incompleted_user_presenter.display_thank_you?).to eq(true)
@@ -101,5 +92,7 @@
it 'does not display the pre_launch partial' do
expect(incompleted_user_presenter.display_pre_launch?).to eq(false)
end
+
+ after { travel_back }
end
end
diff --git a/spec/rails_helper.rb b/spec/rails_helper.rb
index c72e39fb3..e5c13aeec 100644
--- a/spec/rails_helper.rb
+++ b/spec/rails_helper.rb
@@ -4,13 +4,12 @@
require 'spec_helper'
require 'active_support/core_ext/numeric/time'
-ENV['RAILS_ENV'] ||= 'test'
-ENV['START_DATE'] = 2.weeks.ago.to_s
-ENV['END_DATE'] = 2.weeks.from_now.to_s
+ENV['RAILS_ENV'] = 'test'
+ENV['START_DATE'] = (Time.now.utc - 2.weeks).to_s
+ENV['NOW_DATE'] = Time.now.utc.to_s
+ENV['END_DATE'] = (Time.now.utc + 2.weeks).to_s
require File.expand_path('../config/environment', __dir__)
-# Prevent database truncation if the environment is production
-abort('The Rails env is running in production mode!') if Rails.env.production?
require 'rspec/rails'
require 'sidekiq/testing'
@@ -90,6 +89,7 @@ def segment_write_key
#
# The different available types are documented in the features, such as in
# https://relishapp.com/rspec/rspec-rails/docs
+ config.include ActiveSupport::Testing::TimeHelpers
config.include AuthenticationHelper
config.include PullRequestFilterHelper
config.include GraphqlClientHelper
diff --git a/spec/requests/users_controller_spec.rb b/spec/requests/users_controller_spec.rb
index 390069458..aa3dc6751 100644
--- a/spec/requests/users_controller_spec.rb
+++ b/spec/requests/users_controller_spec.rb
@@ -11,7 +11,6 @@
RSpec.describe UsersController, type: :request do
let(:user) { FactoryBot.create(:user) }
- let(:pr_service) { PullRequestService.new(current_user) }
let(:controller) { UsersController.new }
before do
@@ -25,33 +24,15 @@
allow_any_instance_of(SegmentService).to receive(:identify)
allow_any_instance_of(SegmentService).to receive(:track)
- allow(Hacktoberfest).to receive(:ended?).and_return(false)
-
allow_any_instance_of(UserEmailService).to receive(:emails)
.and_return(['test@mail.com'])
- allow_any_instance_of(PullRequest).to receive(:spammy?).and_return(false)
-
login
end
context 'waiting user has 4 eligible PRs & has been waiting for 7+ days' do
before do
- prs = pull_request_data(PR_DATA[:valid_array]).map do |pr|
- PullRequest.new(pr)
- end
-
- allow_any_instance_of(User).to receive(:scoring_pull_requests)
- .and_return(prs)
- allow_any_instance_of(User).to receive(:non_scoring_pull_requests)
- .and_return([])
- allow_any_instance_of(User).to receive(:pull_requests)
- .and_return(prs)
- allow_any_instance_of(User).to receive(:waiting_since)
- .and_return(Time.zone.today - 8)
- allow_any_instance_of(User)
- .to receive(:eligible_pull_requests_count).and_return(4)
-
+ stub_helper(PR_DATA[:mature_array])
user.wait
mock_authentication(uid: user.uid)
login
@@ -64,14 +45,9 @@
end
end
- context 'a user has more than 4 eligible pull requests' do
+ context 'a user has more than 4 waiting pull requests' do
before do
- prs = pull_request_data(PR_DATA[:valid_array]).map do |pr|
- PullRequest.new(pr)
- end
-
- allow_any_instance_of(User).to receive(:pull_requests).and_return(prs)
- allow_any_instance_of(User).to receive(:score).and_return(4)
+ stub_helper(PR_DATA[:large_immature_array])
end
include_examples 'tries transition'
@@ -82,23 +58,7 @@
expect(response).to be_successful
end
- it 'only shows 4 valid pull requests', :vcr do
- get profile_path
- fifth_eligible_pr = PR_DATA[:valid_array].last
- expect(response.body).to_not include(fifth_eligible_pr['title'])
- end
-
it 'transitions the user to the waiting state', :vcr do
- allow_any_instance_of(User)
- .to receive(:eligible_pull_requests_count).and_return(4)
-
- prs = pull_request_data(PR_DATA[:valid_array]).map do |pr|
- PullRequest.new(pr)
- end
-
- allow_any_instance_of(User)
- .to receive(:scoring_pull_requests).and_return(prs)
-
get profile_path
user.reload
expect(user.state).to eq('waiting')
@@ -107,8 +67,7 @@
context 'a user has no pull_requests' do
before do
- allow_any_instance_of(User).to receive(:pull_requests).and_return([])
- allow_any_instance_of(User).to receive(:score).and_return(0)
+ stub_helper([])
end
include_examples 'tries transition'
@@ -119,9 +78,6 @@
end
it 'keeps the user in the registered state', :vcr do
- allow_any_instance_of(User)
- .to receive(:eligible_pull_requests_count).and_return(0)
-
get profile_path
user.reload
expect(user.state).to eq('registered')
@@ -130,12 +86,7 @@
context 'a user has some eligible and invalid pull_requests' do
before do
- prs = pull_request_data(PR_DATA[:invalid_array]).map do |pr|
- PullRequest.new(pr)
- end
- allow_any_instance_of(PullRequestService)
- .to receive(:all).and_return(prs)
- allow_any_instance_of(User).to receive(:score).and_return(3)
+ stub_helper(PR_DATA[:array_with_invalid_labels])
end
include_examples 'tries transition'
@@ -154,6 +105,7 @@
context 'a new user' do
let(:user) { FactoryBot.create(:user, :new) }
+
context 'hacktoberfest is active' do
it 'redirects to the start_path' do
get profile_path
@@ -162,15 +114,22 @@
end
context 'hacktoberfest has ended' do
- before do
- allow(Hacktoberfest).to receive(:ended?).and_return(true)
- end
+ before { travel_to Time.zone.parse(ENV['END_DATE']) + 8.days }
it 'renders the the hacktoberfest ended page' do
get profile_path
expect(response.body).to include('Registrations are now closed.')
end
+
+ after { travel_back }
end
end
end
+
+ def stub_helper(arr_type)
+ PullRequest.delete_all
+ allow_any_instance_of(PullRequestService)
+ .to receive(:github_pull_requests)
+ .and_return(pull_request_data(arr_type))
+ end
end
diff --git a/spec/services/coupon_service_spec.rb b/spec/services/coupon_service_spec.rb
index 96cef169d..936d35244 100644
--- a/spec/services/coupon_service_spec.rb
+++ b/spec/services/coupon_service_spec.rb
@@ -70,6 +70,7 @@
end
context 'with an incompleted user' do
+ before { travel_to Time.zone.parse(ENV['END_DATE']) + 1.day }
let(:user) { FactoryBot.create(:user, :incompleted) }
let(:coupon_service) { CouponService.new(user) }
@@ -138,6 +139,8 @@
expect(user.sticker_coupon).to eq(nil)
end
end
+
+ after { travel_back }
end
end
end
diff --git a/spec/services/gift_service_spec.rb b/spec/services/gift_service_spec.rb
index a6928aea5..e55707b06 100644
--- a/spec/services/gift_service_spec.rb
+++ b/spec/services/gift_service_spec.rb
@@ -5,6 +5,8 @@
RSpec.describe GiftService do
describe '.call' do
context 'Users in the incompleted state' do
+ before { travel_to Time.zone.parse(ENV['END_DATE']) + 1.day }
+
let(:user_with_early_receipt_2prs) do
FactoryBot.create(:user, :incompleted)
end
@@ -91,6 +93,8 @@
.to be_a(StickerCoupon)
end
end
+
+ after { travel_back }
end
end
end
diff --git a/spec/services/pull_request_service_spec.rb b/spec/services/pull_request_service_spec.rb
index 932630109..49fccb4ad 100644
--- a/spec/services/pull_request_service_spec.rb
+++ b/spec/services/pull_request_service_spec.rb
@@ -8,12 +8,6 @@
before do
allow(SpamRepositoryService).to receive(:call).and_return(false)
-
- # stubbing these due to the later stubs with hard coded PR_DATA
- allow(Hacktoberfest)
- .to receive(:start_date).and_return(Date.parse('2019-10-01'))
- allow(Hacktoberfest)
- .to receive(:end_date).and_return(Date.parse('2019-11-01'))
end
describe '.new' do
@@ -122,6 +116,7 @@
end
def stub_helper(arr_type)
+ PullRequest.delete_all
allow(pr_service)
.to receive(:github_pull_requests)
.and_return(pull_request_data(arr_type))
diff --git a/spec/services/try_user_transition_from_registered_service_spec.rb b/spec/services/try_user_transition_from_registered_service_spec.rb
index 11d32f27e..019080abd 100644
--- a/spec/services/try_user_transition_from_registered_service_spec.rb
+++ b/spec/services/try_user_transition_from_registered_service_spec.rb
@@ -9,19 +9,11 @@
before do
allow(UserStateTransitionSegmentService).to receive(:call)
allow(UserPullRequestSegmentUpdaterService).to receive(:call)
-
- # needed for receipt presence validation to pass
- # and for waiting_since calculation
- prs = pull_request_data(PR_DATA[:mature_array]).map do |pr|
- PullRequest.new(pr)
- end
-
- allow(user).to receive(:scoring_pull_requests).and_return(prs)
end
context 'The user has enough PRs to transition' do
before do
- allow(user).to receive(:eligible_pull_requests_count).and_return(4)
+ pr_stub_helper(user, PR_DATA[:immature_array])
TryUserTransitionFromRegisteredService.call(user)
end
@@ -32,7 +24,7 @@
context 'The user has insufficient PRs to transition' do
before do
- allow(user).to receive(:eligible_pull_requests_count).and_return(3)
+ pr_stub_helper(user, PR_DATA[:immature_array][0...3])
TryUserTransitionFromRegisteredService.call(user)
end
@@ -43,15 +35,16 @@
context 'The user has insufficient PRs and Hacktoberfest has ended' do
before do
- allow(user).to receive(:eligible_pull_requests_count).and_return(3)
- allow(user).to receive(:hacktoberfest_ended?).and_return(true)
-
+ travel_to Time.zone.parse(ENV['END_DATE']) + 1.day
+ pr_stub_helper(user, PR_DATA[:mature_array][0...3])
TryUserTransitionFromRegisteredService.call(user)
end
it 'transitions the user to the incompleted state' do
expect(user.state).to eq('incompleted')
end
+
+ after { travel_back }
end
end
end
diff --git a/spec/services/try_user_transition_from_waiting_service_spec.rb b/spec/services/try_user_transition_from_waiting_service_spec.rb
index b06699f85..40168640a 100644
--- a/spec/services/try_user_transition_from_waiting_service_spec.rb
+++ b/spec/services/try_user_transition_from_waiting_service_spec.rb
@@ -9,18 +9,11 @@
before do
allow(UserStateTransitionSegmentService).to receive(:call)
allow(UserPullRequestSegmentUpdaterService).to receive(:call)
-
- prs = pull_request_data(PR_DATA[:mature_array]).map do |pr|
- PullRequest.new(pr)
- end
-
- allow(user).to receive(:scoring_pull_requests).and_return(prs)
end
context 'The user has enough eligible PRs & has been waiting 7+ days' do
before do
- allow(user).to receive(:eligible_pull_requests_count).and_return(4)
- allow(user).to receive(:waiting_since).and_return(Time.zone.today - 8)
+ pr_stub_helper(user, PR_DATA[:mature_array])
TryUserTransitionFromWaitingService.call(user)
end
@@ -29,10 +22,9 @@
end
end
- context 'The user has dropped below 4 eligible prs' do
+ context 'The user has dropped below 4 waiting prs' do
before do
- allow(user).to receive(:eligible_pull_requests_count).and_return(3)
-
+ pr_stub_helper(user, PR_DATA[:immature_array][0...3])
TryUserTransitionFromWaitingService.call(user)
end
@@ -43,8 +35,7 @@
context 'The user needs to continue waiting' do
before do
- allow(user).to receive(:eligible_pull_requests_count).and_return(4)
- allow(user).to receive(:waiting_since).and_return(Time.zone.today - 3)
+ pr_stub_helper(user, PR_DATA[:mixed_maturity_array])
TryUserTransitionFromWaitingService.call(user)
end
diff --git a/spec/services/try_user_transition_service_spec.rb b/spec/services/try_user_transition_service_spec.rb
index b0d7a5987..bc6ecd735 100644
--- a/spec/services/try_user_transition_service_spec.rb
+++ b/spec/services/try_user_transition_service_spec.rb
@@ -8,7 +8,7 @@
let(:user) { FactoryBot.create(:user) }
before do
- allow(user).to receive(:eligible_pull_requests_count).and_return(4)
+ pr_stub_helper(user, PR_DATA[:mature_array])
end
it 'calls the appropriate service' do
@@ -23,8 +23,7 @@
let(:user) { FactoryBot.create(:user, :waiting) }
before do
- allow(user).to receive(:eligible_pull_requests_count).and_return(4)
- allow(user).to receive(:waiting_since).and_return(Time.zone.today - 8)
+ pr_stub_helper(user, PR_DATA[:mature_array])
end
it 'calls the appropriate service' do
diff --git a/spec/services/user_state_transition_segment_service_spec.rb b/spec/services/user_state_transition_segment_service_spec.rb
index b9b3b4ffc..e54859572 100644
--- a/spec/services/user_state_transition_segment_service_spec.rb
+++ b/spec/services/user_state_transition_segment_service_spec.rb
@@ -67,12 +67,13 @@
end
context 'the event is retry_complete and the user is incompleted' do
- let(:user) { FactoryBot.create(:user, :incompleted) }
-
before do
+ travel_to Time.zone.parse(ENV['END_DATE']) + 1.day
allow(transition).to receive(:event).and_return(:retry_complete)
end
+ let(:user) { FactoryBot.create(:user, :incompleted) }
+
it 'calls SegmentService#identify with proper arguments' do
allow_any_instance_of(SegmentService).to receive(:track).with(
'user_completed'
@@ -92,31 +93,33 @@
)
UserStateTransitionSegmentService.call(user, transition)
end
+
+ after { travel_back }
end
- context 'the transition event is ineligible and the user is waiting' do
+ context 'the transition event is insufficient and the user is waiting' do
let(:user) { FactoryBot.create(:user, :waiting) }
before do
- allow(transition).to receive(:event).and_return(:ineligible)
+ allow(transition).to receive(:event).and_return(:insufficient)
end
it 'calls SegmentService#identify with proper arguments' do
allow_any_instance_of(SegmentService).to receive(:track).with(
- 'user_ineligible'
+ 'user_insufficient'
)
expect_any_instance_of(SegmentService).to receive(:identify).with(
- state: 'ineligible'
+ state: 'insufficient'
)
UserStateTransitionSegmentService.call(user, transition)
end
it 'calls SegmentService#track with proper arguments' do
allow_any_instance_of(SegmentService).to receive(:identify).with(
- state: 'ineligible'
+ state: 'insufficient'
)
expect_any_instance_of(SegmentService).to receive(:track).with(
- 'user_ineligible'
+ 'user_insufficient'
)
UserStateTransitionSegmentService.call(user, transition)
end
@@ -187,12 +190,13 @@
end
context 'the event is gifted and the user is incompleted' do
- let(:user) { FactoryBot.create(:user, :incompleted) }
-
before do
+ travel_to Time.zone.parse(ENV['END_DATE']) + 1.day
allow(transition).to receive(:event).and_return(:gifted)
end
+ let(:user) { FactoryBot.create(:user, :incompleted) }
+
it 'calls SegmentService#identify with proper arguments' do
expect_any_instance_of(SegmentService).to receive(:identify).with(
state: 'gifted_sticker'
@@ -212,6 +216,8 @@
)
UserStateTransitionSegmentService.call(user, transition)
end
+
+ after { travel_back }
end
end
end
diff --git a/spec/support/pull_request_filter_helper.rb b/spec/support/pull_request_filter_helper.rb
index 4f03c2981..32c3d073a 100644
--- a/spec/support/pull_request_filter_helper.rb
+++ b/spec/support/pull_request_filter_helper.rb
@@ -1,5 +1,6 @@
# frozen_string_literal: true
+# 4 pull requests with 2 invalid dates
ARRAY_WITH_INVALID_DATES = [
{ 'id' => 'MDExOlB1bGxSZXF1ZXN0NDc0Nzk5ODQ=',
'title' => 'Results by cookie',
@@ -7,7 +8,8 @@
'Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do
eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim.',
'url' => 'https://github.com/peek/peek/pull/79',
- 'createdAt' => '2015-10-13T00:46:43Z',
+ # This is before the event
+ 'createdAt' => (Time.zone.parse(ENV['NOW_DATE']) - 4.years).to_s,
'labels' => { 'edges' => [] },
'repository' => { 'databaseId' => 123 } },
{ 'id' => 'MDExOlB1bGxSZXF1ZXN0NTE0MTg4ODg=',
@@ -15,7 +17,8 @@
'body' => 'Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do
eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim.',
'url' => 'https://github.com/vulume/Cordova-DBCamera/pull/1',
- 'createdAt' => '2015-11-20T22:49:53Z',
+ # This is before the event
+ 'createdAt' => (Time.zone.parse(ENV['NOW_DATE']) - 4.years + 1.month).to_s,
'labels' => { 'edges' => [] },
'repository' => { 'databaseId' => 123 } },
{ 'id' => 'MDExOlB1bGxSZXF1ZXN0NjkyNjE4Mjk=',
@@ -24,7 +27,8 @@
'Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do
eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim.',
'url' => 'https://github.com/syl20bnr/spacemacs/pull/6012',
- 'createdAt' => '2019-10-08T06:24:38Z',
+ # This is valid, eligible
+ 'createdAt' => (Time.zone.parse(ENV['NOW_DATE']) - 8.days).to_s,
'labels' => { 'edges' => [] },
'repository' => { 'databaseId' => 123 } },
{ 'id' => 'MDExOlB1bGxSZXF1ZXN0OTA4ODAzMzQ=',
@@ -33,11 +37,13 @@
'Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do
eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim.',
'url' => 'https://github.com/intridea/hashie/pull/379',
- 'createdAt' => '2019-10-25T19:59:18Z',
+ # This is valid, eligible
+ 'createdAt' => (Time.zone.parse(ENV['NOW_DATE']) - 9.days).to_s,
'labels' => { 'edges' => [] },
'repository' => { 'databaseId' => 123 } }
].freeze
+# 4 pull_requests with 4 invalid dates & 2 invalid labels
ARRAY_WITH_INVALID_DATES_AND_INVALID_LABEL = [
{ 'id' => 'MDExOlB1bGxSZXF1ZXN0NDc0Nzk5ODQ=',
'title' => 'Results by cookie',
@@ -45,7 +51,8 @@
'Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do
eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim.',
'url' => 'https://github.com/peek/peek/pull/79',
- 'createdAt' => '2015-10-13T00:46:43Z',
+ # This is before the event
+ 'createdAt' => (Time.zone.parse(ENV['NOW_DATE']) - 4.years).to_s,
'labels' => { 'edges' => [] },
'repository' => { 'databaseId' => 123 } },
{ 'id' => 'MDExOlB1bGxSZXF1ZXN0NTE0MTg4ODg=',
@@ -53,7 +60,8 @@
'body' => 'Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do
eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim.',
'url' => 'https://github.com/vulume/Cordova-DBCamera/pull/1',
- 'createdAt' => '2015-11-20T22:49:53Z',
+ # This is before the event
+ 'createdAt' => (Time.zone.parse(ENV['NOW_DATE']) - 4.years + 1.month).to_s,
'labels' => { 'edges' => [] },
'repository' => { 'databaseId' => 123 } },
{ 'id' => 'MDExOlB1bGxSZXF1ZXN0NjkyNjE4Mjk=',
@@ -62,8 +70,9 @@
'Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do
eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim.',
'url' => 'https://github.com/syl20bnr/spacemacs/pull/6012',
- 'createdAt' => '2016-05-08T06:24:38Z',
- 'labels' => { 'edges': [{ 'node': { 'name': 'Invalid' } }] },
+ # This is before the event
+ 'createdAt' => (Time.zone.parse(ENV['NOW_DATE']) - 3.years - 5.months).to_s,
+ 'labels' => { 'edges': [{ 'node': { 'name': '❌ Invalid' } }] },
'repository' => { 'databaseId' => 123 } },
{ 'id' => 'MDExOlB1bGxSZXF1ZXN0OTA4ODAzMzQ=',
'title' => 'Coercion type systems',
@@ -71,27 +80,114 @@
'Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do
eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim.',
'url' => 'https://github.com/intridea/hashie/pull/379',
- 'createdAt' => '2016-10-25T19:59:18Z',
+ # This is before the event
+ 'createdAt' => (Time.zone.parse(ENV['NOW_DATE']) - 3.years).to_s,
'labels' => { 'edges': [{ 'node': { 'name': 'Invalid' } }] },
'repository' => { 'databaseId' => 123 } }
].freeze
+INVALID_EMOJI_LABEL_PR = {
+ 'id' => 'MDExOlB1bGxSZXF1ZXN0NDc0Nzk5ODQ=',
+ 'title' => 'Results by cookie',
+ 'body' =>
+ 'Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod
+ tempor incididunt ut labore et dolore magna aliqua. Ut enim.',
+ 'url' => 'https://github.com/peek/peek/pull/79',
+ # This is valid, eligible
+ 'createdAt' => (Time.zone.parse(ENV['NOW_DATE']) - 8.days).to_s,
+ # Invalid label should make it invalid
+ 'labels' => { 'edges' => [{ 'node': { 'name': '❌ Invalid' } }] },
+ 'repository' => { 'databaseId' => 123 }
+}.freeze
+
+INVALID_LABEL_PR = {
+ 'id' => 'MDExOlB1bGxSZXF1ZXN0OTA4ODAzMzQ=',
+ 'title' => 'Coercion type systems',
+ 'body' =>
+ 'Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod
+ tempor incididunt ut labore et dolore magna aliqua. Ut enim.',
+ 'url' => 'https://github.com/intridea/hashie/pull/379',
+ # This is valid, eligible
+ 'createdAt' => (Time.zone.parse(ENV['NOW_DATE']) - 11.days).to_s,
+ # Invalid label should make it invalid
+ 'labels' => { 'edges' => [{ 'node': { 'name': 'Invalid' } }] },
+ 'repository' => { 'databaseId' => 123 }
+}.freeze
+
+ELIGIBLE_PR = {
+ 'id' => 'MDExOlB1bGxSZXF1ZXN0NTE0MTg4ODg=',
+ 'title' => 'Update README.md',
+ 'body' =>
+ 'Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod
+ tempor incididunt ut labore et dolore magna aliqua. Ut enim.',
+ 'url' => 'https://github.com/vulume/Cordova-DBCamera/pull/1',
+ # This is valid, eligible
+ 'createdAt' => (Time.zone.parse(ENV['NOW_DATE']) - 9.days).to_s,
+ 'labels' => { 'edges' => [] },
+ 'repository' => { 'databaseId' => 123 }
+}.freeze
+
+ELIGIBLE_INVALID_MERGED_PR = {
+ 'id' => 'MDExOlB1bGxSZXF1ZXN0NjkyNjE4Mjk=',
+ 'title' => 'Add natural layer',
+ 'body' =>
+ 'Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod
+ tempor incididunt ut labore et dolore magna aliqua. Ut enim.',
+ 'url' => 'https://github.com/syl20bnr/spacemacs/pull/6012',
+ 'createdAt' => (Time.zone.parse(ENV['NOW_DATE']) - 10.days).to_s,
+ # Invalid label should make it invalid
+ 'labels' => { 'edges': [{ 'node': { 'name': 'Invalid' } }] },
+ # Merged should override the invalid label and make it valid
+ 'merged' => true,
+ 'repository' => { 'databaseId' => 123 }
+}.freeze
+
+# 5 pull requests with 3 valid dates & 2 invalid labels
ARRAY_WITH_INVALID_LABEL = [
+ INVALID_EMOJI_LABEL_PR,
+ ELIGIBLE_PR,
+ { 'id' => 'MDExOlB1bGxSZXF1ZXN0NjkyNjE4Mjk=',
+ 'title' => 'Add natural layer',
+ 'body' =>
+ 'Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do
+ eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim.',
+ 'url' => 'https://github.com/syl20bnr/spacemacs/pull/6012',
+ # This is valid, eligible
+ 'createdAt' => (Time.zone.parse(ENV['NOW_DATE']) - 10.days).to_s,
+ 'labels' => { 'edges' => [] },
+ 'repository' => { 'databaseId' => 123 } },
+ INVALID_LABEL_PR,
+ { 'id' => 'MDExOlBdfsfafsfdsF1ZXN0OTA4ODAzMzQ=',
+ 'title' => 'Timeline Feature',
+ 'body' =>
+ 'Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do
+ eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim.',
+ 'url' => 'https://github.com/intridea/hashie/pull/379',
+ # This is valid, eligible
+ 'createdAt' => (Time.zone.parse(ENV['NOW_DATE']) - 12.days).to_s,
+ 'labels' => { 'edges' => [] },
+ 'repository' => { 'databaseId' => 123 } }
+].freeze
+
+# 5 pull requests with valid dates and valid labels
+VALID_ARRAY = [
{ 'id' => 'MDExOlB1bGxSZXF1ZXN0NDc0Nzk5ODQ=',
'title' => 'Results by cookie',
'body' =>
'Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do
eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim.',
'url' => 'https://github.com/peek/peek/pull/79',
- 'createdAt' => '2019-10-13T00:46:43Z',
- 'labels' => { 'edges' => [{ 'node': { 'name': 'Invalid' } }] },
+ # This is valid, eligible
+ 'createdAt' => (Time.zone.parse(ENV['NOW_DATE']) - 8.days).to_s,
+ 'labels' => { 'edges' => [] },
'repository' => { 'databaseId' => 123 } },
{ 'id' => 'MDExOlB1bGxSZXF1ZXN0NTE0MTg4ODg=',
'title' => 'Update README.md',
'body' => 'Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do
eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim.',
'url' => 'https://github.com/vulume/Cordova-DBCamera/pull/1',
- 'createdAt' => '2019-10-20T22:49:53Z',
+ # This is valid, eligible
+ 'createdAt' => (Time.zone.parse(ENV['NOW_DATE']) - 9.days).to_s,
'labels' => { 'edges' => [] },
'repository' => { 'databaseId' => 123 } },
{ 'id' => 'MDExOlB1bGxSZXF1ZXN0NjkyNjE4Mjk=',
@@ -100,7 +196,8 @@
'Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do
eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim.',
'url' => 'https://github.com/syl20bnr/spacemacs/pull/6012',
- 'createdAt' => '2019-10-08T06:24:38Z',
+ # This is valid, eligible
+ 'createdAt' => (Time.zone.parse(ENV['NOW_DATE']) - 10.days).to_s,
'labels' => { 'edges' => [] },
'repository' => { 'databaseId' => 123 } },
{ 'id' => 'MDExOlB1bGxSZXF1ZXN0OTA4ODAzMzQ=',
@@ -109,8 +206,9 @@
'Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do
eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim.',
'url' => 'https://github.com/intridea/hashie/pull/379',
- 'createdAt' => '2019-10-25T19:59:18Z',
- 'labels' => { 'edges': [{ 'node': { 'name': 'Invalid' } }] },
+ # This is valid, eligible
+ 'createdAt' => (Time.zone.parse(ENV['NOW_DATE']) - 11.days).to_s,
+ 'labels' => { 'edges' => [] },
'repository' => { 'databaseId' => 123 } },
{ 'id' => 'MDExOlBdfsfafsfdsF1ZXN0OTA4ODAzMzQ=',
'title' => 'Timeline Feature',
@@ -118,19 +216,21 @@
'Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do
eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim.',
'url' => 'https://github.com/intridea/hashie/pull/379',
- 'createdAt' => '2019-10-28T19:59:18Z',
+ # This is valid, eligible
+ 'createdAt' => (Time.zone.parse(ENV['NOW_DATE']) - 12.days).to_s,
'labels' => { 'edges' => [] },
'repository' => { 'databaseId' => 123 } }
].freeze
-VALID_ARRAY = [
+# 4 pull requests all with timestamps older than 7 days, eligible/mature
+MATURE_ARRAY = [
{ 'id' => 'MDExOlB1bGxSZXF1ZXN0NDc0Nzk5ODQ=',
'title' => 'Results by cookie',
'body' =>
'Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do
eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim.',
'url' => 'https://github.com/peek/peek/pull/79',
- 'createdAt' => '2019-10-13T00:46:43Z',
+ 'createdAt' => (Time.zone.parse(ENV['NOW_DATE']) - 8.days).to_s,
'labels' => { 'edges' => [] },
'repository' => { 'databaseId' => 123 } },
{ 'id' => 'MDExOlB1bGxSZXF1ZXN0NTE0MTg4ODg=',
@@ -138,104 +238,172 @@
'body' => 'Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do
eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim.',
'url' => 'https://github.com/vulume/Cordova-DBCamera/pull/1',
- 'createdAt' => '2019-10-20T22:49:53Z',
+ 'createdAt' => (Time.zone.parse(ENV['NOW_DATE']) - 9.days).to_s,
'labels' => { 'edges' => [] },
'repository' => { 'databaseId' => 123 } },
- { 'id' => 'MDExOlB1bGxSZXF1ZXN0NjkyNjE4Mjk=',
- 'title' => 'Add natural layer',
+ ELIGIBLE_INVALID_MERGED_PR,
+ { 'id' => 'MDExOlB1bGxSZXF1ZXN0OTA4ODAzMzQ=',
+ 'title' => 'Coercion type systems',
'body' =>
'Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do
eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim.',
- 'url' => 'https://github.com/syl20bnr/spacemacs/pull/6012',
- 'createdAt' => '2019-10-08T06:24:38Z',
+ 'url' => 'https://github.com/intridea/hashie/pull/379',
+ 'createdAt' => (Time.zone.parse(ENV['NOW_DATE']) - 11.days).to_s,
+ 'labels' => { 'edges' => [] },
+ 'repository' => { 'databaseId' => 123 } }
+].freeze
+
+IMMATURE_PR = {
+ 'id' => 'MDExOlB1bGxSZXF1ZXN0NDc0Nzk5ODQ=',
+ 'title' => 'Results by cookie',
+ 'body' =>
+ 'Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod
+ tempor incididunt ut labore et dolore magna aliqua. Ut enim.',
+ 'url' => 'https://github.com/peek/peek/pull/79',
+ 'createdAt' => (Time.zone.parse(ENV['NOW_DATE']) - 2.days).to_s,
+ 'labels' => { 'edges' => [] },
+ 'repository' => { 'databaseId' => 123 }
+}.freeze
+
+IMMATURE_INVALID_MERGED_PR = {
+ 'id' => 'MDExOlB1bGxSZXF1ZXN0NjkyNjE4Mjk=',
+ 'title' => 'Add natural layer',
+ 'body' =>
+ 'Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod
+ tempor incididunt ut labore et dolore magna aliqua. Ut enim.',
+ 'url' => 'https://github.com/syl20bnr/spacemacs/pull/6012',
+ 'createdAt' => (Time.zone.parse(ENV['NOW_DATE']) - 2.days).to_s,
+ # Invalid label should make it invalid
+ 'labels' => { 'edges': [{ 'node': { 'name': 'Invalid' } }] },
+ # Merged should override the invalid label and make it valid
+ 'merged' => true,
+ 'repository' => { 'databaseId' => 123 }
+}.freeze
+
+# 4 pull requests with timestamps less than 7 days old, maturing
+IMMATURE_ARRAY = [
+ IMMATURE_PR,
+ { 'id' => 'MDExOlB1bGxSZXF1ZXN0NTE0MTg4ODg=',
+ 'title' => 'Update README.md',
+ 'body' => 'Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do
+ eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim.',
+ 'url' => 'https://github.com/vulume/Cordova-DBCamera/pull/1',
+ 'createdAt' => (Time.zone.parse(ENV['NOW_DATE']) - 3.days).to_s,
'labels' => { 'edges' => [] },
'repository' => { 'databaseId' => 123 } },
- { 'id' => 'MDExOlB1bGxSZXF1ZXN0OTA4ODAzMzQ=',
- 'title' => 'Coercion type systems',
+ { 'id' => 'MDExOlB1bGxSZXF1ZXN0NjkyNjE4Mjk=',
+ 'title' => 'Add natural layer',
'body' =>
'Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do
eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim.',
- 'url' => 'https://github.com/intridea/hashie/pull/379',
- 'createdAt' => '2019-10-25T19:59:18Z',
+ 'url' => 'https://github.com/syl20bnr/spacemacs/pull/6012',
+ 'createdAt' => (Time.zone.parse(ENV['NOW_DATE']) - 4.days).to_s,
'labels' => { 'edges' => [] },
'repository' => { 'databaseId' => 123 } },
- { 'id' => 'MDExOlBdfsfafsfdsF1ZXN0OTA4ODAzMzQ=',
- 'title' => 'Timeline Feature',
+ { 'id' => 'MDExOlB1bGxSZXF1ZXN0OTA4ODAzMzQ=',
+ 'title' => 'Coercion type systems',
'body' =>
'Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do
eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim.',
'url' => 'https://github.com/intridea/hashie/pull/379',
- 'createdAt' => '2019-10-28T19:59:18Z',
+ 'createdAt' => (Time.zone.parse(ENV['NOW_DATE']) - 5.days).to_s,
'labels' => { 'edges' => [] },
'repository' => { 'databaseId' => 123 } }
].freeze
-MATURE_ARRAY = [
- { 'id' => 'MDExOlB1bGxSZXF1ZXN0NDc0Nzk5ODQ=',
+LARGE_IMMATURE_ARRAY = [
+ { 'id' => 'MDExOlBdfsfafsfdsF1ZXN0OTA4ODAzMzQ=',
'title' => 'Results by cookie',
'body' =>
- 'Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do
- eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim.',
+ 'Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do
+ eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim.',
+ 'url' => 'https://github.com/peek/peek/pull/79',
+ 'createdAt' => (Time.zone.parse(ENV['NOW_DATE']) - 1.day).to_s,
+ 'labels' => { 'edges' => [] },
+ 'repository' => { 'databaseId' => 123 } },
+ { 'id' => 'MDExOlB1bGxSZXF1ZXN0NDc0Nzk5ODQ=',
+ 'title' => 'Results by localstorage',
+ 'body' =>
+ 'Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do
+ eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim.',
'url' => 'https://github.com/peek/peek/pull/79',
- 'createdAt' => '2019-10-11T00:46:43Z',
- 'labels' => { 'edges' => [] } },
+ 'createdAt' => (Time.zone.parse(ENV['NOW_DATE']) - 2.days).to_s,
+ 'labels' => { 'edges' => [] },
+ 'repository' => { 'databaseId' => 123 } },
{ 'id' => 'MDExOlB1bGxSZXF1ZXN0NTE0MTg4ODg=',
'title' => 'Update README.md',
'body' => 'Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do
- eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim.',
+ eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim.',
'url' => 'https://github.com/vulume/Cordova-DBCamera/pull/1',
- 'createdAt' => '2019-10-11T22:49:53Z',
- 'labels' => { 'edges' => [] } },
+ 'createdAt' => (Time.zone.parse(ENV['NOW_DATE']) - 3.days).to_s,
+ 'labels' => { 'edges' => [] },
+ 'repository' => { 'databaseId' => 123 } },
{ 'id' => 'MDExOlB1bGxSZXF1ZXN0NjkyNjE4Mjk=',
'title' => 'Add natural layer',
'body' =>
- 'Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do
- eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim.',
+ 'Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do
+ eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim.',
'url' => 'https://github.com/syl20bnr/spacemacs/pull/6012',
- 'createdAt' => '2019-10-08T06:24:38Z',
- 'labels' => { 'edges' => [] } },
+ 'createdAt' => (Time.zone.parse(ENV['NOW_DATE']) - 4.days).to_s,
+ 'labels' => { 'edges' => [] },
+ 'repository' => { 'databaseId' => 123 } },
{ 'id' => 'MDExOlB1bGxSZXF1ZXN0OTA4ODAzMzQ=',
'title' => 'Coercion type systems',
'body' =>
- 'Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do
- eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim.',
+ 'Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do
+ eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim.',
'url' => 'https://github.com/intridea/hashie/pull/379',
- 'createdAt' => '2019-10-03T19:59:18Z',
- 'labels' => { 'edges' => [] } }
+ 'createdAt' => (Time.zone.parse(ENV['NOW_DATE']) - 5.days).to_s,
+ 'labels' => { 'edges' => [] },
+ 'repository' => { 'databaseId' => 123 } },
+ { 'id' => 'MDExOlB1bGxSZXF1ZXN0OTA4ODAzMzQB1bG=',
+ 'title' => 'Timeline Feature',
+ 'body' =>
+ 'Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do
+ eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim.',
+ 'url' => 'https://github.com/intridea/hashie/pull/546',
+ 'createdAt' => (Time.zone.parse(ENV['NOW_DATE']) - 6.days).to_s,
+ 'labels' => { 'edges' => [] },
+ 'repository' => { 'databaseId' => 123 } }
].freeze
-IMMATURE_ARRAY = [
+# 4 pull requests with timestamps less than 7 days before the end
+LATE_ARRAY = [
{ 'id' => 'MDExOlB1bGxSZXF1ZXN0NDc0Nzk5ODQ=',
'title' => 'Results by cookie',
'body' =>
- 'Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do
- eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim.',
+ 'Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do
+ eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim.',
'url' => 'https://github.com/peek/peek/pull/79',
- 'createdAt' => '2019-10-20T00:46:43Z',
- 'labels' => { 'edges' => [] } },
+ 'createdAt' => (Time.zone.parse(ENV['END_DATE']) - 2.days).to_s,
+ 'labels' => { 'edges' => [] },
+ 'repository' => { 'databaseId' => 123 } },
{ 'id' => 'MDExOlB1bGxSZXF1ZXN0NTE0MTg4ODg=',
'title' => 'Update README.md',
'body' => 'Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do
- eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim.',
+ eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim.',
'url' => 'https://github.com/vulume/Cordova-DBCamera/pull/1',
- 'createdAt' => '2019-10-18T22:49:53Z',
- 'labels' => { 'edges' => [] } },
+ 'createdAt' => (Time.zone.parse(ENV['END_DATE']) - 3.days).to_s,
+ 'labels' => { 'edges' => [] },
+ 'repository' => { 'databaseId' => 123 } },
{ 'id' => 'MDExOlB1bGxSZXF1ZXN0NjkyNjE4Mjk=',
'title' => 'Add natural layer',
'body' =>
- 'Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do
- eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim.',
+ 'Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do
+ eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim.',
'url' => 'https://github.com/syl20bnr/spacemacs/pull/6012',
- 'createdAt' => '2019-10-17T06:24:38Z',
- 'labels' => { 'edges' => [] } },
+ 'createdAt' => (Time.zone.parse(ENV['END_DATE']) - 4.days).to_s,
+ 'labels' => { 'edges' => [] },
+ 'repository' => { 'databaseId' => 123 } },
{ 'id' => 'MDExOlB1bGxSZXF1ZXN0OTA4ODAzMzQ=',
'title' => 'Coercion type systems',
'body' =>
- 'Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do
- eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim.',
+ 'Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do
+ eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim.',
'url' => 'https://github.com/intridea/hashie/pull/379',
- 'createdAt' => '2019-10-19T19:59:18Z',
- 'labels' => { 'edges' => [] } }
+ 'createdAt' => (Time.zone.parse(ENV['END_DATE']) - 5.days).to_s,
+ 'labels' => { 'edges' => [] },
+ 'repository' => { 'databaseId' => 123 } }
].freeze
MIXED_MATURITY_ARRAY = IMMATURE_ARRAY[0..1] + MATURE_ARRAY[2..3]
@@ -247,13 +415,32 @@
invalid_array: ARRAY_WITH_INVALID_DATES_AND_INVALID_LABEL,
mature_array: MATURE_ARRAY,
immature_array: IMMATURE_ARRAY,
- mixed_maturity_array: MIXED_MATURITY_ARRAY
+ large_immature_array: LARGE_IMMATURE_ARRAY,
+ mixed_maturity_array: MIXED_MATURITY_ARRAY,
+ late_array: LATE_ARRAY
}.freeze
module PullRequestFilterHelper
+ include RSpec::Mocks::ExampleMethods
+
def pull_request_data(pr_array)
pr_array.map do |hash|
- GithubPullRequest.new(Hashie::Mash.new(hash))
+ github_pull_request(hash)
end
end
+
+ def github_pull_request(hash)
+ GithubPullRequest.new(Hashie::Mash.new(hash))
+ end
+
+ def pr_stub_helper(target, pr_data)
+ PullRequest.delete_all
+ allow(target.send(:pull_request_service))
+ .to receive(:github_pull_requests)
+ .and_return(pull_request_data(pr_data))
+ end
+
+ class << self
+ include PullRequestFilterHelper
+ end
end
diff --git a/spec/support/user_receipt_helper.rb b/spec/support/user_receipt_helper.rb
index 90d6b7afd..715749dc7 100644
--- a/spec/support/user_receipt_helper.rb
+++ b/spec/support/user_receipt_helper.rb
@@ -1,105 +1,85 @@
# frozen_string_literal: true
EARLY_RECEIPT_3_PRS = [
- { 'github_pull_request' =>
- { 'graphql_hash' =>
- { 'id' => 'MDExOlB1bGxSZXF1ZXN0MzI1NDc3OTA3',
- 'url' => 'https://github.com/hacktoberfest-test/pull/18',
- 'body' => '',
- 'title' => 'Peculiar bug',
- 'labels' => { 'edges' => [] },
- 'createdAt' => '2019-10-07T20:23:23Z',
- 'repository' => { 'databaseId' => 211_178_535 } } } },
- { 'github_pull_request' =>
- { 'graphql_hash' =>
- { 'id' => 'MDExOlB1bGxSZXF1ZXN0MzI1NDc4MDIy',
- 'url' => 'https://github.com/20',
- 'body' => '',
- 'title' => 'CI scripts',
- 'labels' => { 'edges' => [] },
- 'createdAt' => '2019-10-09T20:23:42Z',
- 'repository' => { 'databaseId' => 211_178_535 } } } },
- { 'github_pull_request' =>
- { 'graphql_hash' =>
- { 'id' => 'MDExOlB1bGxSZXF1ZXN0MzI1NDc4MDc2',
- 'url' => 'https://github.com/21',
- 'body' => '',
- 'title' => 'readme addition',
- 'labels' => { 'edges' => [] },
- 'createdAt' => '2019-10-08T20:23:51Z',
- 'repository' => { 'databaseId' => 211_178_535 } } } }
+ { 'id' => 'MDExOlB1bGxSZXF1ZXN0MzI1NDc3OTA3',
+ 'url' => 'https://github.com/hacktoberfest-test/pull/18',
+ 'body' => '',
+ 'title' => 'Peculiar bug',
+ 'labels' => { 'edges' => [] },
+ 'createdAt' => (Time.zone.parse(ENV['START_DATE']) + 7.days).to_s,
+ 'repository' => { 'databaseId' => 211_178_535 } },
+ { 'id' => 'MDExOlB1bGxSZXF1ZXN0MzI1NDc4MDIy',
+ 'url' => 'https://github.com/20',
+ 'body' => '',
+ 'title' => 'CI scripts',
+ 'labels' => { 'edges' => [] },
+ 'createdAt' => (Time.zone.parse(ENV['START_DATE']) + 9.days).to_s,
+ 'repository' => { 'databaseId' => 211_178_535 } },
+ { 'id' => 'MDExOlB1bGxSZXF1ZXN0MzI1NDc4MDc2',
+ 'url' => 'https://github.com/21',
+ 'body' => '',
+ 'title' => 'readme addition',
+ 'labels' => { 'edges' => [] },
+ 'createdAt' => (Time.zone.parse(ENV['START_DATE']) + 8.days).to_s,
+ 'repository' => { 'databaseId' => 211_178_535 } }
].freeze
EARLY_RECEIPT_2_PRS = [
- { 'github_pull_request' =>
- { 'graphql_hash' =>
- { 'id' => 'MDExOlB1bGxSZXF1ZXN0MzI1NDc3OTA3',
- 'url' => 'https://github.com/18',
- 'body' => '',
- 'title' => 'Peculiar bug',
- 'labels' => { 'edges' => [] },
- 'createdAt' => '2019-10-07T20:23:23Z',
- 'repository' => { 'databaseId' => 211_178_535 } } } },
- { 'github_pull_request' =>
- { 'graphql_hash' =>
- { 'id' => 'MDExOlB1bGxSZXF1ZXN0MzI1NDc4MDIy',
- 'url' => 'https://github.com/20',
- 'body' => '',
- 'title' => 'CI scripts',
- 'labels' => { 'edges' => [] },
- 'createdAt' => '2019-10-10T20:23:42Z',
- 'repository' => { 'databaseId' => 211_178_535 } } } }
+ { 'id' => 'MDExOlB1bGxSZXF1ZXN0MzI1NDc3OTA3',
+ 'url' => 'https://github.com/18',
+ 'body' => '',
+ 'title' => 'Peculiar bug',
+ 'labels' => { 'edges' => [] },
+ 'createdAt' => (Time.zone.parse(ENV['START_DATE']) + 7.days).to_s,
+ 'repository' => { 'databaseId' => 211_178_535 } },
+ { 'id' => 'MDExOlB1bGxSZXF1ZXN0MzI1NDc4MDIy',
+ 'url' => 'https://github.com/20',
+ 'body' => '',
+ 'title' => 'CI scripts',
+ 'labels' => { 'edges' => [] },
+ 'createdAt' => (Time.zone.parse(ENV['START_DATE']) + 10.days).to_s,
+ 'repository' => { 'databaseId' => 211_178_535 } }
].freeze
LATE_RECEIPT_2_PRS = [
- { 'github_pull_request' =>
- { 'graphql_hash' =>
- { 'id' => 'MDExOlB1bGxSZXF1ZXN0MzI1NDc3OTA3',
- 'url' => 'https://github.com/18',
- 'body' => '',
- 'title' => 'Peculiar bug',
- 'labels' => { 'edges' => [] },
- 'createdAt' => '2019-10-27T20:23:23Z',
- 'repository' => { 'databaseId' => 211_178_535 } } } },
- { 'github_pull_request' =>
- { 'graphql_hash' =>
- { 'id' => 'MDExOlB1bGxSZXF1ZXN0MzI1NDc4MDIy',
- 'url' => 'https://github.com',
- 'body' => '',
- 'title' => 'CI scripts',
- 'labels' => { 'edges' => [] },
- 'createdAt' => '2019-10-29T20:23:42Z',
- 'repository' => { 'databaseId' => 211_178_535 } } } }
+ { 'id' => 'MDExOlB1bGxSZXF1ZXN0MzI1NDc3OTA3',
+ 'url' => 'https://github.com/18',
+ 'body' => '',
+ 'title' => 'Peculiar bug',
+ 'labels' => { 'edges' => [] },
+ 'createdAt' => (Time.zone.parse(ENV['END_DATE']) - 3.days).to_s,
+ 'repository' => { 'databaseId' => 211_178_535 } },
+ { 'id' => 'MDExOlB1bGxSZXF1ZXN0MzI1NDc4MDIy',
+ 'url' => 'https://github.com',
+ 'body' => '',
+ 'title' => 'CI scripts',
+ 'labels' => { 'edges' => [] },
+ 'createdAt' => (Time.zone.parse(ENV['END_DATE']) - 2.days).to_s,
+ 'repository' => { 'databaseId' => 211_178_535 } }
].freeze
LATE_RECEIPT_3_PRS = [
- { 'github_pull_request' =>
- { 'graphql_hash' =>
- { 'id' => 'MDExOlB1bGxSZXF1ZXN0MzI1NDc3OTA3',
- 'url' => 'https://github.com/18',
- 'body' => '',
- 'title' => 'Peculiar bug',
- 'labels' => { 'edges' => [] },
- 'createdAt' => '2019-10-30T20:23:23Z',
- 'repository' => { 'databaseId' => 211_178_535 } } } },
- { 'github_pull_request' =>
- { 'graphql_hash' =>
- { 'id' => 'MDExOlB1bGxSZXF1ZXN0MzI1NDc4MDIy',
- 'url' => 'https://github.com/20',
- 'body' => '',
- 'title' => 'CI scripts',
- 'labels' => { 'edges' => [] },
- 'createdAt' => '2019-10-20T20:23:42Z',
- 'repository' => { 'databaseId' => 211_178_535 } } } },
- { 'github_pull_request' =>
- { 'graphql_hash' =>
- { 'id' => 'MDExOlB1bGxSZXF1ZXN0MzI1NDc4MDc2',
- 'url' => 'https://github.com/21',
- 'body' => '',
- 'title' => 'readme addition',
- 'labels' => { 'edges' => [] },
- 'createdAt' => '2019-10-28T20:23:51Z',
- 'repository' => { 'databaseId' => 211_178_535 } } } }
+ { 'id' => 'MDExOlB1bGxSZXF1ZXN0MzI1NDc3OTA3',
+ 'url' => 'https://github.com/18',
+ 'body' => '',
+ 'title' => 'Peculiar bug',
+ 'labels' => { 'edges' => [] },
+ 'createdAt' => (Time.zone.parse(ENV['END_DATE']) - 1.day).to_s,
+ 'repository' => { 'databaseId' => 211_178_535 } },
+ { 'id' => 'MDExOlB1bGxSZXF1ZXN0MzI1NDc4MDIy',
+ 'url' => 'https://github.com/20',
+ 'body' => '',
+ 'title' => 'CI scripts',
+ 'labels' => { 'edges' => [] },
+ 'createdAt' => (Time.zone.parse(ENV['END_DATE']) - 4.days).to_s,
+ 'repository' => { 'databaseId' => 211_178_535 } },
+ { 'id' => 'MDExOlB1bGxSZXF1ZXN0MzI1NDc4MDc2',
+ 'url' => 'https://github.com/21',
+ 'body' => '',
+ 'title' => 'readme addition',
+ 'labels' => { 'edges' => [] },
+ 'createdAt' => (Time.zone.parse(ENV['END_DATE']) - 3.days).to_s,
+ 'repository' => { 'databaseId' => 211_178_535 } }
].freeze
RECEIPT_DATA = {
diff --git a/spec/vcr/SessionsController/requesting_protected_resource/user_is_logged_in_and_the_user_is_not_registered/the_request_is_unsuccesful.yml b/spec/vcr/SessionsController/requesting_protected_resource/user_is_logged_in_and_the_user_is_not_registered/the_request_is_unsuccesful.yml
index 0d42e3f09..bc1890819 100644
--- a/spec/vcr/SessionsController/requesting_protected_resource/user_is_logged_in_and_the_user_is_not_registered/the_request_is_unsuccesful.yml
+++ b/spec/vcr/SessionsController/requesting_protected_resource/user_is_logged_in_and_the_user_is_not_registered/the_request_is_unsuccesful.yml
@@ -162,7 +162,7 @@ http_interactions:
User-Agent:
- Faraday v0.15.4
Authorization:
- - Basic 5l7s5rMYtOwhYCY00Srr3163ZFfGcyeT
+ - Basic
Content-Type:
- application/json
Accept-Encoding:
@@ -192,4 +192,94 @@ http_interactions:
}
http_version:
recorded_at: Wed, 18 Sep 2019 15:49:24 GMT
+- request:
+ method: put
+ uri: https://api.airbrake.io/api/v5/projects/244344/routes-stats
+ body:
+ encoding: UTF-8
+ string: '{"routes":[{"method":"GET","route":"/boom(.:format)","statusCode":500,"time":"2020-08-05T20:10:00+00:00","count":2,"sum":8.1945,"sumsq":33.83562933,"tdigest":"AAAAAkA0AAAAAAAAAAAAAkBvHec/ONuMAQE="},{"method":"GET","route":"/auth/:provider/callback(.:format)","statusCode":302,"time":"2020-08-05T20:10:00+00:00","count":30,"sum":224.49130000000008,"sumsq":1887.8445024900002,"tdigest":"AAAAAkA0AAAAAAAAAAAAHkBjjVA/QoJBPNdzGTz6rNo8+dsjPgOVgT8MmF8++RaHPgYk3T41jiI/IHX3PNT99D4VTJg79cKPPU4HXz9kwvg9T0HyPZD/lz5Zzgc98AaOPcwvgz4JhfA9p++ePqb2lD8fQfJAFSOjPtVz6z4/fO4+l0vHPuDe0wEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQ=="},{"method":"GET","route":"/profile(.:format)","statusCode":200,"time":"2020-08-05T20:10:00+00:00","count":22,"sum":10277.987900000002,"sumsq":7332194.609232931,"tdigest":"AAAAAkA0AAAAAAAAAAAAFkNdRbU/riTdP7FYED9dhE0+YCdSQBzJhkHTCj1AMOIZQXQS1z6mwic/1rhSPz8hLUKhdT9AOt+kQk2VMkAXXClDTniGQBVmz0PG8kQ/9tKJQ2rYUkBLdLwBAQEBAQEBAQEBAQEBAQEBAQEBAQEB"},{"method":"GET","route":"/profile(.:format)","statusCode":500,"time":"2020-08-05T20:10:00+00:00","count":4,"sum":540.8234,"sumsq":127106.88501484001,"tdigest":"AAAAAkA0AAAAAAAAAAAABEGRD8U/6GWVQ2XPq0BOTDABAQEB"}],"environment":"development"}'
+ headers:
+ Accept-Encoding:
+ - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
+ Accept:
+ - "*/*"
+ User-Agent:
+ - airbrake-ruby/4.6.0 Ruby/2.5.8
+ Authorization:
+ - Bearer 706287fc6c288d10169d2a8d38577941
+ Content-Type:
+ - application/json
+ response:
+ status:
+ code: 204
+ message: ''
+ headers:
+ Access-Control-Allow-Headers:
+ - Accept,Origin,Content-Type,X-Requested-With
+ Access-Control-Allow-Methods:
+ - OPTIONS,GET,PUT,POST
+ Access-Control-Allow-Origin:
+ - "*"
+ Access-Control-Expose-Headers:
+ - X-RateLimit-Delay
+ Content-Type:
+ - application/json
+ X-Ratelimit-Delay:
+ - '8'
+ X-Ratelimit-Limit:
+ - '10000'
+ X-Ratelimit-Remaining:
+ - '9999'
+ Date:
+ - Wed, 05 Aug 2020 20:10:52 GMT
+ body:
+ encoding: UTF-8
+ string: ''
+ http_version:
+ recorded_at: Wed, 05 Aug 2020 20:10:52 GMT
+- request:
+ method: put
+ uri: https://api.airbrake.io/api/v5/projects/244344/routes-breakdowns
+ body:
+ encoding: UTF-8
+ string: '{"routes":[{"method":"GET","route":"/auth/:provider/callback(.:format)","responseType":"html","time":"2020-08-05T20:10:00+00:00","count":30,"sum":290.86199999999997,"sumsq":3059.4987730600005,"tdigest":"AAAAAkA0AAAAAAAAAAAAHkCwhlk/SvTxPYmgJz0DEm8+2802PwQYkz3B8hM7ZWBCPG801z6Nq58+JckdPhPdmD5fIS0+exW1PWdsiz8eKCQ8h/y5PwHyEz8LuYw+/J7tPwn1Wj8QNG48UbcXPnoPkT55WBA/byEtPK9PDj8G4us/rX2/P6C6xwEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQ==","groups":{"db":{"count":30,"sum":39.60899985395372,"sumsq":63.533655595939585,"tdigest":"AAAAAkA0AAAAAAAAAAAADz8MCDI9dVmiPMVtYj5eGwo9gqmOPXO2Yj5x3mU9T0HsPZZSwj152yI9Jkw0PqvTwT5ZFoY97swFPzkWhwICAgICAgICAgICAgICAg=="}}},{"method":"GET","route":"/profile(.:format)","responseType":"html","time":"2020-08-05T20:10:00+00:00","count":26,"sum":10867.751299999998,"sumsq":7501084.613202449,"tdigest":"AAAAAkA0AAAAAAAAAAAAGkGdmF8/wscRQ0p7wD9jiGY/o/FBPj6rNj+U7ZE/7Zs9QbzvnkBKLQ4+0PJ8P+HhsUF6z0I/LvNNP39cKT8QW8BCpDtXQAUHyEJOapk/78uSQ08OIj+/AGlDxyeRP7If80NskxlAFzZ6AQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQE=","groups":{"db":{"count":26,"sum":83.6636001477018,"sumsq":607.6307301112398,"tdigest":"AAAAAkA0AAAAAAAAAAAADT6ICdY7RJsOPoNG2z3ItDg+mbPRPseuFT73tKU/dEZyPyF1kD4XJGo/9jiIQBC+DkCyO80CAgICAgICAgICAgIC"},"view":{"count":22,"sum":9570.51699992735,"sumsq":6748767.3078613235,"tdigest":"AAAAAkA0AAAAAAAAAAAAC0MseR1BODRuQatlYEGM0iBAPW1dQgndL0KJv8xCE54bQ1ov2UPXxIVDSiYLAgICAgICAgICAgI="}}}],"environment":"development"}'
+ headers:
+ Accept-Encoding:
+ - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
+ Accept:
+ - "*/*"
+ User-Agent:
+ - airbrake-ruby/4.6.0 Ruby/2.5.8
+ Authorization:
+ - Bearer 706287fc6c288d10169d2a8d38577941
+ Content-Type:
+ - application/json
+ response:
+ status:
+ code: 204
+ message: ''
+ headers:
+ Access-Control-Allow-Headers:
+ - Accept,Origin,Content-Type,X-Requested-With
+ Access-Control-Allow-Methods:
+ - OPTIONS,GET,PUT,POST
+ Access-Control-Allow-Origin:
+ - "*"
+ Access-Control-Expose-Headers:
+ - X-RateLimit-Delay
+ Content-Type:
+ - application/json
+ X-Ratelimit-Delay:
+ - '7'
+ X-Ratelimit-Limit:
+ - '10000'
+ X-Ratelimit-Remaining:
+ - '9998'
+ Date:
+ - Wed, 05 Aug 2020 20:10:53 GMT
+ body:
+ encoding: UTF-8
+ string: ''
+ http_version:
+ recorded_at: Wed, 05 Aug 2020 20:10:53 GMT
recorded_with: VCR 5.0.0
diff --git a/spec/vcr/User/_complete/the_user_does_not_have_4_mature_PRs/adds_the_correct_errors_to_the_user.yml b/spec/vcr/User/_complete/the_user_does_not_have_4_mature_PRs/adds_the_correct_errors_to_the_user.yml
deleted file mode 100644
index ed07b8faa..000000000
--- a/spec/vcr/User/_complete/the_user_does_not_have_4_mature_PRs/adds_the_correct_errors_to_the_user.yml
+++ /dev/null
@@ -1,125 +0,0 @@
----
-http_interactions:
-- request:
- method: post
- uri: https://api.github.com/graphql
- body:
- encoding: UTF-8
- string: '{"query":"query($username:String!) {\n user(login: $username) {\n pullRequests(states:
- OPEN last: 100) {\n nodes {\n id\n title\n body\n url\n createdAt\n labels(first:
- 100) {\n edges {\n node {\n name\n }\n }\n }\n }\n }\n }\n}\n","variables":{"username":"mkcode"}}'
- headers:
- User-Agent:
- - Faraday v0.12.2
- Authorization:
- - bearer
- Content-Type:
- - application/json
- Accept-Encoding:
- - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
- Accept:
- - "*/*"
- response:
- status:
- code: 200
- message: OK
- headers:
- Date:
- - Fri, 13 Sep 2019 19:58:05 GMT
- Content-Type:
- - application/json; charset=utf-8
- Transfer-Encoding:
- - chunked
- Server:
- - GitHub.com
- Status:
- - 200 OK
- Cache-Control:
- - no-cache
- X-Oauth-Scopes:
- - user:email
- X-Accepted-Oauth-Scopes:
- - repo
- X-Github-Media-Type:
- - github.v4; format=json
- X-Ratelimit-Limit:
- - '5000'
- X-Ratelimit-Remaining:
- - '4962'
- X-Ratelimit-Reset:
- - '1568408095'
- Access-Control-Expose-Headers:
- - ETag, Link, Location, Retry-After, X-GitHub-OTP, X-RateLimit-Limit, X-RateLimit-Remaining,
- X-RateLimit-Reset, X-OAuth-Scopes, X-Accepted-OAuth-Scopes, X-Poll-Interval,
- X-GitHub-Media-Type
- Access-Control-Allow-Origin:
- - "*"
- Strict-Transport-Security:
- - max-age=31536000; includeSubdomains; preload
- X-Frame-Options:
- - deny
- X-Content-Type-Options:
- - nosniff
- X-Xss-Protection:
- - 1; mode=block
- Referrer-Policy:
- - origin-when-cross-origin, strict-origin-when-cross-origin
- Content-Security-Policy:
- - default-src 'none'
- Vary:
- - Accept-Encoding
- X-Github-Request-Id:
- - 264D:6E87:88FA3:DBD85:5D7BF4CD
- body:
- encoding: ASCII-8BIT
- string: '{"data":{"user":{"pullRequests":{"nodes":[{"id":"MDExOlB1bGxSZXF1ZXN0NTc5MDc4Mg==","title":"Upgraded
- to rails 3.2 stable","body":"Hi, I''m using this app as template for a new
- project. Wanted to get on rails 3.2 stable before I started. Here it is!\n\nCheers\n","url":"https://github.com/maccman/spine.rails3/pull/6","createdAt":"2013-05-17T23:05:41Z","labels":{"edges":[]}},{"id":"MDExOlB1bGxSZXF1ZXN0NDcxMDUxNzU=","title":"Delete
- repos cleanup","body":"@PeterDaveHello - Thanks for your contribution. I''m
- using this work as an opportunity to clean up how we are doing testing in
- this app. I see that you basically copied the format from the create_repos
- spec - which was a good move.\n\nAfter reworking this so I can understand
- what is happening in https://github.com/education/teachers_pet/commit/be8a8b1ddb3a8ef79a88f53f6bd05649417f0515,
- I notice that we are not stubbing any repo deletion requests - which then
- therefore would mean that these tests aren''t actually sending any API requests.\n\n@PeterDaveHello
- - these tests should be hitting a delete repo endpoint on the GitHub API,
- should they not? Can we rework them so that they do? These tests should fail
- in the case the we comment out the `teachers_pet(:delete_repos)`... block.\n\n/cc
- @johndbritton \n","url":"https://github.com/education/teachers_pet/pull/126","createdAt":"2015-10-08T02:24:19Z","labels":{"edges":[]}},{"id":"MDExOlB1bGxSZXF1ZXN0NDc0Nzk5ODQ=","title":"Results
- by cookie","body":"Hi @deski - Following up on our discussion in #78 \n\nThis
- PR adds info from the peek cookie as discussed. It does not save Peek results
- unless the peek cookie is enabled. Always sets the cookie if peek is enabled.\n\nIn
- the case Peek was not enabled for a request, and is toggled on, `Peek::Views`
- with a `data-defer-to` are hidden and a refresh message is displayed: \n\n![screen
- shot 2015-10-12 at 8 41 31 pm](https://cloud.githubusercontent.com/assets/283496/10442611/22bb6a2e-7122-11e5-8fb3-c3fb5ed333b7.png)\n","url":"https://github.com/peek/peek/pull/79","createdAt":"2015-10-13T00:46:43Z","labels":{"edges":[]}},{"id":"MDExOlB1bGxSZXF1ZXN0NTE0MTg4ODg=","title":"Update
- README.md","body":"Add maintenance note to readme\n","url":"https://github.com/vulume/Cordova-DBCamera/pull/1","createdAt":"2015-11-20T22:49:53Z","labels":{"edges":[]}},{"id":"MDExOlB1bGxSZXF1ZXN0NjkyNjE4Mjk=","title":"Add
- natural layer","body":"Adds the beginnings of a prose layer.\n\nReplaces #5403
- according to the discussion in #5996.\n","url":"https://github.com/syl20bnr/spacemacs/pull/6012","createdAt":"2016-05-08T06:24:38Z","labels":{"edges":[{"node":{"name":"New
- Layer"}}]}},{"id":"MDExOlB1bGxSZXF1ZXN0OTA4ODAzMzQ=","title":"Coercion type
- systems","body":"Introducing switchable type coercion systems for Hashie.
- Follows up on #239.\n\nAdds ''dry-types'' and ''activemodel'' alongside Hashie''s
- builtin coercion system. Basic usage is written up in the README.\n\nFor the
- most part, reading the source should be straight forward. The ''coercion''
- folder under ''extensions'' contains the implementation of the 3 coercion
- systems. The `Hashie::Extensions::Coercion` module was split into two files.
- The file itself contains the interface and common coercion methods, while
- the `Coercion::HashieTypes` class now contains the actual coercion implementation.\n\nThe
- only confusing part is the `CoercionSystemIncludeBuilder` defined under `Hashie::Extensions::Coercion`.
- The purpose of this class is to DRY up the included hooks for `Hashie::Extensions::Coercion`
- and `Hashie::Extensions::Dash::Coercion`. The common includes are defined
- once, and reused in the default `included` method and the `active_model` and
- `dry_types` methods on both the default and Dash coercion classes. The `active_model`
- and `dry_types` methods on `Hashie::Extensions::Coercion` and `Hashie::Extensions::Dash::Coercion`
- both return an anonymous module with an `included` method correctly defined,
- which then is immediately executed because it then included. \n\nExample:
- \n\n``` ruby\nmod = Hashie::Extensions::Coercion.dry_types\n# => \n\nmod.methods\n#=> [:included]\n\nclass MyHash < Hashie::Hash\n include
- mod\nend\n#=> Hashie::Extensions::Coercion::ClassMethods, Hashie::Extensions::Coercion::InstanceMethods,
- and Hashie::Extensions::Coercion::DryTypes are all mixed into MyHash\n```\n\nThis
- is 100% backwards compatible and all the tests pass. I did not add any additional
- tests - we should not need many as the new coercion systems are well tested
- in their own repos. We may want to add a few tests though.\n","url":"https://github.com/intridea/hashie/pull/379","createdAt":"2016-10-25T19:59:18Z","labels":{"edges":[{"node":{"name":"new
- feature"}}]}}]}}}}'
- http_version:
- recorded_at: Fri, 13 Sep 2019 19:58:05 GMT
-recorded_with: VCR 5.0.0
diff --git a/spec/vcr/User/_complete/the_user_does_not_have_4_mature_PRs/adds_the_correct_errors_to_user.yml b/spec/vcr/User/_complete/the_user_does_not_have_4_mature_PRs/adds_the_correct_errors_to_user.yml
deleted file mode 100644
index 9302ba671..000000000
--- a/spec/vcr/User/_complete/the_user_does_not_have_4_mature_PRs/adds_the_correct_errors_to_user.yml
+++ /dev/null
@@ -1,123 +0,0 @@
----
-http_interactions:
-- request:
- method: post
- uri: https://api.github.com/graphql
- body:
- encoding: UTF-8
- string: '{"query":"query($username:String!) {\n user(login: $username) {\n pullRequests(states:
- OPEN last: 100) {\n nodes {\n id\n title\n body\n url\n createdAt\n labels(first:
- 100) {\n edges {\n node {\n name\n }\n }\n }\n }\n }\n }\n}\n","variables":{"username":"mkcode"}}'
- headers:
- User-Agent:
- - Faraday v0.12.2
- Authorization:
- - bearer
- Content-Type:
- - application/json
- Accept-Encoding:
- - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
- Accept:
- - "*/*"
- response:
- status:
- code: 200
- message: OK
- headers:
- Server:
- - GitHub.com
- Date:
- - Fri, 13 Sep 2019 20:08:25 GMT
- Content-Type:
- - application/json; charset=utf-8
- Transfer-Encoding:
- - chunked
- Status:
- - 200 OK
- Cache-Control:
- - no-cache
- X-Oauth-Scopes:
- - user:email
- X-Accepted-Oauth-Scopes:
- - repo
- X-Github-Media-Type:
- - github.v4; format=json
- X-Ratelimit-Limit:
- - '5000'
- X-Ratelimit-Remaining:
- - '4943'
- X-Ratelimit-Reset:
- - '1568408901'
- Access-Control-Expose-Headers:
- - ETag, Link, Location, Retry-After, X-GitHub-OTP, X-RateLimit-Limit, X-RateLimit-Remaining,
- X-RateLimit-Reset, X-OAuth-Scopes, X-Accepted-OAuth-Scopes, X-Poll-Interval,
- X-GitHub-Media-Type
- Access-Control-Allow-Origin:
- - "*"
- Strict-Transport-Security:
- - max-age=31536000; includeSubdomains; preload
- X-Frame-Options:
- - deny
- X-Content-Type-Options:
- - nosniff
- X-Xss-Protection:
- - 1; mode=block
- Referrer-Policy:
- - origin-when-cross-origin, strict-origin-when-cross-origin
- Content-Security-Policy:
- - default-src 'none'
- X-Github-Request-Id:
- - 3F9B:6F4A:823A13:10B88F0:5D7BF739
- body:
- encoding: ASCII-8BIT
- string: '{"data":{"user":{"pullRequests":{"nodes":[{"id":"MDExOlB1bGxSZXF1ZXN0NTc5MDc4Mg==","title":"Upgraded
- to rails 3.2 stable","body":"Hi, I''m using this app as template for a new
- project. Wanted to get on rails 3.2 stable before I started. Here it is!\n\nCheers\n","url":"https://github.com/maccman/spine.rails3/pull/6","createdAt":"2013-05-17T23:05:41Z","labels":{"edges":[]}},{"id":"MDExOlB1bGxSZXF1ZXN0NDcxMDUxNzU=","title":"Delete
- repos cleanup","body":"@PeterDaveHello - Thanks for your contribution. I''m
- using this work as an opportunity to clean up how we are doing testing in
- this app. I see that you basically copied the format from the create_repos
- spec - which was a good move.\n\nAfter reworking this so I can understand
- what is happening in https://github.com/education/teachers_pet/commit/be8a8b1ddb3a8ef79a88f53f6bd05649417f0515,
- I notice that we are not stubbing any repo deletion requests - which then
- therefore would mean that these tests aren''t actually sending any API requests.\n\n@PeterDaveHello
- - these tests should be hitting a delete repo endpoint on the GitHub API,
- should they not? Can we rework them so that they do? These tests should fail
- in the case the we comment out the `teachers_pet(:delete_repos)`... block.\n\n/cc
- @johndbritton \n","url":"https://github.com/education/teachers_pet/pull/126","createdAt":"2015-10-08T02:24:19Z","labels":{"edges":[]}},{"id":"MDExOlB1bGxSZXF1ZXN0NDc0Nzk5ODQ=","title":"Results
- by cookie","body":"Hi @deski - Following up on our discussion in #78 \n\nThis
- PR adds info from the peek cookie as discussed. It does not save Peek results
- unless the peek cookie is enabled. Always sets the cookie if peek is enabled.\n\nIn
- the case Peek was not enabled for a request, and is toggled on, `Peek::Views`
- with a `data-defer-to` are hidden and a refresh message is displayed: \n\n![screen
- shot 2015-10-12 at 8 41 31 pm](https://cloud.githubusercontent.com/assets/283496/10442611/22bb6a2e-7122-11e5-8fb3-c3fb5ed333b7.png)\n","url":"https://github.com/peek/peek/pull/79","createdAt":"2015-10-13T00:46:43Z","labels":{"edges":[]}},{"id":"MDExOlB1bGxSZXF1ZXN0NTE0MTg4ODg=","title":"Update
- README.md","body":"Add maintenance note to readme\n","url":"https://github.com/vulume/Cordova-DBCamera/pull/1","createdAt":"2015-11-20T22:49:53Z","labels":{"edges":[]}},{"id":"MDExOlB1bGxSZXF1ZXN0NjkyNjE4Mjk=","title":"Add
- natural layer","body":"Adds the beginnings of a prose layer.\n\nReplaces #5403
- according to the discussion in #5996.\n","url":"https://github.com/syl20bnr/spacemacs/pull/6012","createdAt":"2016-05-08T06:24:38Z","labels":{"edges":[{"node":{"name":"New
- Layer"}}]}},{"id":"MDExOlB1bGxSZXF1ZXN0OTA4ODAzMzQ=","title":"Coercion type
- systems","body":"Introducing switchable type coercion systems for Hashie.
- Follows up on #239.\n\nAdds ''dry-types'' and ''activemodel'' alongside Hashie''s
- builtin coercion system. Basic usage is written up in the README.\n\nFor the
- most part, reading the source should be straight forward. The ''coercion''
- folder under ''extensions'' contains the implementation of the 3 coercion
- systems. The `Hashie::Extensions::Coercion` module was split into two files.
- The file itself contains the interface and common coercion methods, while
- the `Coercion::HashieTypes` class now contains the actual coercion implementation.\n\nThe
- only confusing part is the `CoercionSystemIncludeBuilder` defined under `Hashie::Extensions::Coercion`.
- The purpose of this class is to DRY up the included hooks for `Hashie::Extensions::Coercion`
- and `Hashie::Extensions::Dash::Coercion`. The common includes are defined
- once, and reused in the default `included` method and the `active_model` and
- `dry_types` methods on both the default and Dash coercion classes. The `active_model`
- and `dry_types` methods on `Hashie::Extensions::Coercion` and `Hashie::Extensions::Dash::Coercion`
- both return an anonymous module with an `included` method correctly defined,
- which then is immediately executed because it then included. \n\nExample:
- \n\n``` ruby\nmod = Hashie::Extensions::Coercion.dry_types\n# => \n\nmod.methods\n#=> [:included]\n\nclass MyHash < Hashie::Hash\n include
- mod\nend\n#=> Hashie::Extensions::Coercion::ClassMethods, Hashie::Extensions::Coercion::InstanceMethods,
- and Hashie::Extensions::Coercion::DryTypes are all mixed into MyHash\n```\n\nThis
- is 100% backwards compatible and all the tests pass. I did not add any additional
- tests - we should not need many as the new coercion systems are well tested
- in their own repos. We may want to add a few tests though.\n","url":"https://github.com/intridea/hashie/pull/379","createdAt":"2016-10-25T19:59:18Z","labels":{"edges":[{"node":{"name":"new
- feature"}}]}}]}}}}'
- http_version:
- recorded_at: Fri, 13 Sep 2019 20:08:25 GMT
-recorded_with: VCR 5.0.0
diff --git a/spec/vcr/User/_complete/the_user_does_not_have_4_mature_PRs/can_t_enter_the_completed_state.yml b/spec/vcr/User/_complete/the_user_does_not_have_4_mature_PRs/can_t_enter_the_completed_state.yml
deleted file mode 100644
index 23f53a36d..000000000
--- a/spec/vcr/User/_complete/the_user_does_not_have_4_mature_PRs/can_t_enter_the_completed_state.yml
+++ /dev/null
@@ -1,123 +0,0 @@
----
-http_interactions:
-- request:
- method: post
- uri: https://api.github.com/graphql
- body:
- encoding: UTF-8
- string: '{"query":"query($username:String!) {\n user(login: $username) {\n pullRequests(states:
- OPEN last: 100) {\n nodes {\n id\n title\n body\n url\n createdAt\n labels(first:
- 100) {\n edges {\n node {\n name\n }\n }\n }\n }\n }\n }\n}\n","variables":{"username":"mkcode"}}'
- headers:
- User-Agent:
- - Faraday v0.12.2
- Authorization:
- - bearer
- Content-Type:
- - application/json
- Accept-Encoding:
- - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
- Accept:
- - "*/*"
- response:
- status:
- code: 200
- message: OK
- headers:
- Server:
- - GitHub.com
- Date:
- - Fri, 13 Sep 2019 20:08:25 GMT
- Content-Type:
- - application/json; charset=utf-8
- Transfer-Encoding:
- - chunked
- Status:
- - 200 OK
- Cache-Control:
- - no-cache
- X-Oauth-Scopes:
- - user:email
- X-Accepted-Oauth-Scopes:
- - repo
- X-Github-Media-Type:
- - github.v4; format=json
- X-Ratelimit-Limit:
- - '5000'
- X-Ratelimit-Remaining:
- - '4944'
- X-Ratelimit-Reset:
- - '1568408901'
- Access-Control-Expose-Headers:
- - ETag, Link, Location, Retry-After, X-GitHub-OTP, X-RateLimit-Limit, X-RateLimit-Remaining,
- X-RateLimit-Reset, X-OAuth-Scopes, X-Accepted-OAuth-Scopes, X-Poll-Interval,
- X-GitHub-Media-Type
- Access-Control-Allow-Origin:
- - "*"
- Strict-Transport-Security:
- - max-age=31536000; includeSubdomains; preload
- X-Frame-Options:
- - deny
- X-Content-Type-Options:
- - nosniff
- X-Xss-Protection:
- - 1; mode=block
- Referrer-Policy:
- - origin-when-cross-origin, strict-origin-when-cross-origin
- Content-Security-Policy:
- - default-src 'none'
- X-Github-Request-Id:
- - 43C5:4688:4F4678:BC8373:5D7BF739
- body:
- encoding: ASCII-8BIT
- string: '{"data":{"user":{"pullRequests":{"nodes":[{"id":"MDExOlB1bGxSZXF1ZXN0NTc5MDc4Mg==","title":"Upgraded
- to rails 3.2 stable","body":"Hi, I''m using this app as template for a new
- project. Wanted to get on rails 3.2 stable before I started. Here it is!\n\nCheers\n","url":"https://github.com/maccman/spine.rails3/pull/6","createdAt":"2013-05-17T23:05:41Z","labels":{"edges":[]}},{"id":"MDExOlB1bGxSZXF1ZXN0NDcxMDUxNzU=","title":"Delete
- repos cleanup","body":"@PeterDaveHello - Thanks for your contribution. I''m
- using this work as an opportunity to clean up how we are doing testing in
- this app. I see that you basically copied the format from the create_repos
- spec - which was a good move.\n\nAfter reworking this so I can understand
- what is happening in https://github.com/education/teachers_pet/commit/be8a8b1ddb3a8ef79a88f53f6bd05649417f0515,
- I notice that we are not stubbing any repo deletion requests - which then
- therefore would mean that these tests aren''t actually sending any API requests.\n\n@PeterDaveHello
- - these tests should be hitting a delete repo endpoint on the GitHub API,
- should they not? Can we rework them so that they do? These tests should fail
- in the case the we comment out the `teachers_pet(:delete_repos)`... block.\n\n/cc
- @johndbritton \n","url":"https://github.com/education/teachers_pet/pull/126","createdAt":"2015-10-08T02:24:19Z","labels":{"edges":[]}},{"id":"MDExOlB1bGxSZXF1ZXN0NDc0Nzk5ODQ=","title":"Results
- by cookie","body":"Hi @deski - Following up on our discussion in #78 \n\nThis
- PR adds info from the peek cookie as discussed. It does not save Peek results
- unless the peek cookie is enabled. Always sets the cookie if peek is enabled.\n\nIn
- the case Peek was not enabled for a request, and is toggled on, `Peek::Views`
- with a `data-defer-to` are hidden and a refresh message is displayed: \n\n![screen
- shot 2015-10-12 at 8 41 31 pm](https://cloud.githubusercontent.com/assets/283496/10442611/22bb6a2e-7122-11e5-8fb3-c3fb5ed333b7.png)\n","url":"https://github.com/peek/peek/pull/79","createdAt":"2015-10-13T00:46:43Z","labels":{"edges":[]}},{"id":"MDExOlB1bGxSZXF1ZXN0NTE0MTg4ODg=","title":"Update
- README.md","body":"Add maintenance note to readme\n","url":"https://github.com/vulume/Cordova-DBCamera/pull/1","createdAt":"2015-11-20T22:49:53Z","labels":{"edges":[]}},{"id":"MDExOlB1bGxSZXF1ZXN0NjkyNjE4Mjk=","title":"Add
- natural layer","body":"Adds the beginnings of a prose layer.\n\nReplaces #5403
- according to the discussion in #5996.\n","url":"https://github.com/syl20bnr/spacemacs/pull/6012","createdAt":"2016-05-08T06:24:38Z","labels":{"edges":[{"node":{"name":"New
- Layer"}}]}},{"id":"MDExOlB1bGxSZXF1ZXN0OTA4ODAzMzQ=","title":"Coercion type
- systems","body":"Introducing switchable type coercion systems for Hashie.
- Follows up on #239.\n\nAdds ''dry-types'' and ''activemodel'' alongside Hashie''s
- builtin coercion system. Basic usage is written up in the README.\n\nFor the
- most part, reading the source should be straight forward. The ''coercion''
- folder under ''extensions'' contains the implementation of the 3 coercion
- systems. The `Hashie::Extensions::Coercion` module was split into two files.
- The file itself contains the interface and common coercion methods, while
- the `Coercion::HashieTypes` class now contains the actual coercion implementation.\n\nThe
- only confusing part is the `CoercionSystemIncludeBuilder` defined under `Hashie::Extensions::Coercion`.
- The purpose of this class is to DRY up the included hooks for `Hashie::Extensions::Coercion`
- and `Hashie::Extensions::Dash::Coercion`. The common includes are defined
- once, and reused in the default `included` method and the `active_model` and
- `dry_types` methods on both the default and Dash coercion classes. The `active_model`
- and `dry_types` methods on `Hashie::Extensions::Coercion` and `Hashie::Extensions::Dash::Coercion`
- both return an anonymous module with an `included` method correctly defined,
- which then is immediately executed because it then included. \n\nExample:
- \n\n``` ruby\nmod = Hashie::Extensions::Coercion.dry_types\n# => \n\nmod.methods\n#=> [:included]\n\nclass MyHash < Hashie::Hash\n include
- mod\nend\n#=> Hashie::Extensions::Coercion::ClassMethods, Hashie::Extensions::Coercion::InstanceMethods,
- and Hashie::Extensions::Coercion::DryTypes are all mixed into MyHash\n```\n\nThis
- is 100% backwards compatible and all the tests pass. I did not add any additional
- tests - we should not need many as the new coercion systems are well tested
- in their own repos. We may want to add a few tests though.\n","url":"https://github.com/intridea/hashie/pull/379","createdAt":"2016-10-25T19:59:18Z","labels":{"edges":[{"node":{"name":"new
- feature"}}]}}]}}}}'
- http_version:
- recorded_at: Fri, 13 Sep 2019 20:08:25 GMT
-recorded_with: VCR 5.0.0
diff --git a/spec/vcr/User/_complete/the_user_does_not_have_4_mature_PRs/disallows_the_user_to_enter_the_completed_state.yml b/spec/vcr/User/_complete/the_user_does_not_have_4_mature_PRs/disallows_the_user_to_enter_the_completed_state.yml
deleted file mode 100644
index a21494c67..000000000
--- a/spec/vcr/User/_complete/the_user_does_not_have_4_mature_PRs/disallows_the_user_to_enter_the_completed_state.yml
+++ /dev/null
@@ -1,123 +0,0 @@
----
-http_interactions:
-- request:
- method: post
- uri: https://api.github.com/graphql
- body:
- encoding: UTF-8
- string: '{"query":"query($username:String!) {\n user(login: $username) {\n pullRequests(states:
- OPEN last: 100) {\n nodes {\n id\n title\n body\n url\n createdAt\n labels(first:
- 100) {\n edges {\n node {\n name\n }\n }\n }\n }\n }\n }\n}\n","variables":{"username":"mkcode"}}'
- headers:
- User-Agent:
- - Faraday v0.12.2
- Authorization:
- - bearer
- Content-Type:
- - application/json
- Accept-Encoding:
- - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
- Accept:
- - "*/*"
- response:
- status:
- code: 200
- message: OK
- headers:
- Server:
- - GitHub.com
- Date:
- - Fri, 13 Sep 2019 19:58:05 GMT
- Content-Type:
- - application/json; charset=utf-8
- Transfer-Encoding:
- - chunked
- Status:
- - 200 OK
- Cache-Control:
- - no-cache
- X-Oauth-Scopes:
- - user:email
- X-Accepted-Oauth-Scopes:
- - repo
- X-Github-Media-Type:
- - github.v4; format=json
- X-Ratelimit-Limit:
- - '5000'
- X-Ratelimit-Remaining:
- - '4963'
- X-Ratelimit-Reset:
- - '1568408095'
- Access-Control-Expose-Headers:
- - ETag, Link, Location, Retry-After, X-GitHub-OTP, X-RateLimit-Limit, X-RateLimit-Remaining,
- X-RateLimit-Reset, X-OAuth-Scopes, X-Accepted-OAuth-Scopes, X-Poll-Interval,
- X-GitHub-Media-Type
- Access-Control-Allow-Origin:
- - "*"
- Strict-Transport-Security:
- - max-age=31536000; includeSubdomains; preload
- X-Frame-Options:
- - deny
- X-Content-Type-Options:
- - nosniff
- X-Xss-Protection:
- - 1; mode=block
- Referrer-Policy:
- - origin-when-cross-origin, strict-origin-when-cross-origin
- Content-Security-Policy:
- - default-src 'none'
- X-Github-Request-Id:
- - 5718:50B3:18D508:2B9D71:5D7BF4CD
- body:
- encoding: ASCII-8BIT
- string: '{"data":{"user":{"pullRequests":{"nodes":[{"id":"MDExOlB1bGxSZXF1ZXN0NTc5MDc4Mg==","title":"Upgraded
- to rails 3.2 stable","body":"Hi, I''m using this app as template for a new
- project. Wanted to get on rails 3.2 stable before I started. Here it is!\n\nCheers\n","url":"https://github.com/maccman/spine.rails3/pull/6","createdAt":"2013-05-17T23:05:41Z","labels":{"edges":[]}},{"id":"MDExOlB1bGxSZXF1ZXN0NDcxMDUxNzU=","title":"Delete
- repos cleanup","body":"@PeterDaveHello - Thanks for your contribution. I''m
- using this work as an opportunity to clean up how we are doing testing in
- this app. I see that you basically copied the format from the create_repos
- spec - which was a good move.\n\nAfter reworking this so I can understand
- what is happening in https://github.com/education/teachers_pet/commit/be8a8b1ddb3a8ef79a88f53f6bd05649417f0515,
- I notice that we are not stubbing any repo deletion requests - which then
- therefore would mean that these tests aren''t actually sending any API requests.\n\n@PeterDaveHello
- - these tests should be hitting a delete repo endpoint on the GitHub API,
- should they not? Can we rework them so that they do? These tests should fail
- in the case the we comment out the `teachers_pet(:delete_repos)`... block.\n\n/cc
- @johndbritton \n","url":"https://github.com/education/teachers_pet/pull/126","createdAt":"2015-10-08T02:24:19Z","labels":{"edges":[]}},{"id":"MDExOlB1bGxSZXF1ZXN0NDc0Nzk5ODQ=","title":"Results
- by cookie","body":"Hi @deski - Following up on our discussion in #78 \n\nThis
- PR adds info from the peek cookie as discussed. It does not save Peek results
- unless the peek cookie is enabled. Always sets the cookie if peek is enabled.\n\nIn
- the case Peek was not enabled for a request, and is toggled on, `Peek::Views`
- with a `data-defer-to` are hidden and a refresh message is displayed: \n\n![screen
- shot 2015-10-12 at 8 41 31 pm](https://cloud.githubusercontent.com/assets/283496/10442611/22bb6a2e-7122-11e5-8fb3-c3fb5ed333b7.png)\n","url":"https://github.com/peek/peek/pull/79","createdAt":"2015-10-13T00:46:43Z","labels":{"edges":[]}},{"id":"MDExOlB1bGxSZXF1ZXN0NTE0MTg4ODg=","title":"Update
- README.md","body":"Add maintenance note to readme\n","url":"https://github.com/vulume/Cordova-DBCamera/pull/1","createdAt":"2015-11-20T22:49:53Z","labels":{"edges":[]}},{"id":"MDExOlB1bGxSZXF1ZXN0NjkyNjE4Mjk=","title":"Add
- natural layer","body":"Adds the beginnings of a prose layer.\n\nReplaces #5403
- according to the discussion in #5996.\n","url":"https://github.com/syl20bnr/spacemacs/pull/6012","createdAt":"2016-05-08T06:24:38Z","labels":{"edges":[{"node":{"name":"New
- Layer"}}]}},{"id":"MDExOlB1bGxSZXF1ZXN0OTA4ODAzMzQ=","title":"Coercion type
- systems","body":"Introducing switchable type coercion systems for Hashie.
- Follows up on #239.\n\nAdds ''dry-types'' and ''activemodel'' alongside Hashie''s
- builtin coercion system. Basic usage is written up in the README.\n\nFor the
- most part, reading the source should be straight forward. The ''coercion''
- folder under ''extensions'' contains the implementation of the 3 coercion
- systems. The `Hashie::Extensions::Coercion` module was split into two files.
- The file itself contains the interface and common coercion methods, while
- the `Coercion::HashieTypes` class now contains the actual coercion implementation.\n\nThe
- only confusing part is the `CoercionSystemIncludeBuilder` defined under `Hashie::Extensions::Coercion`.
- The purpose of this class is to DRY up the included hooks for `Hashie::Extensions::Coercion`
- and `Hashie::Extensions::Dash::Coercion`. The common includes are defined
- once, and reused in the default `included` method and the `active_model` and
- `dry_types` methods on both the default and Dash coercion classes. The `active_model`
- and `dry_types` methods on `Hashie::Extensions::Coercion` and `Hashie::Extensions::Dash::Coercion`
- both return an anonymous module with an `included` method correctly defined,
- which then is immediately executed because it then included. \n\nExample:
- \n\n``` ruby\nmod = Hashie::Extensions::Coercion.dry_types\n# => \n\nmod.methods\n#=> [:included]\n\nclass MyHash < Hashie::Hash\n include
- mod\nend\n#=> Hashie::Extensions::Coercion::ClassMethods, Hashie::Extensions::Coercion::InstanceMethods,
- and Hashie::Extensions::Coercion::DryTypes are all mixed into MyHash\n```\n\nThis
- is 100% backwards compatible and all the tests pass. I did not add any additional
- tests - we should not need many as the new coercion systems are well tested
- in their own repos. We may want to add a few tests though.\n","url":"https://github.com/intridea/hashie/pull/379","createdAt":"2016-10-25T19:59:18Z","labels":{"edges":[{"node":{"name":"new
- feature"}}]}}]}}}}'
- http_version:
- recorded_at: Fri, 13 Sep 2019 19:58:05 GMT
-recorded_with: VCR 5.0.0
diff --git a/spec/vcr/User/_complete/the_user_has_4_eligible_PRs_but_has_not_been_waiting_for_7_days/adds_the_correct_errors_to_user.yml b/spec/vcr/User/_complete/the_user_has_4_eligible_PRs_but_has_not_been_waiting_for_7_days/adds_the_correct_errors_to_user.yml
deleted file mode 100644
index 607fe9600..000000000
--- a/spec/vcr/User/_complete/the_user_has_4_eligible_PRs_but_has_not_been_waiting_for_7_days/adds_the_correct_errors_to_user.yml
+++ /dev/null
@@ -1,78 +0,0 @@
----
-http_interactions:
-- request:
- method: post
- uri: https://api.github.com/graphql
- body:
- encoding: UTF-8
- string: '{"query":"query($username:String!) {\n user(login: $username) {\n pullRequests(states:
- [OPEN, MERGED, CLOSED] last: 100) {\n nodes {\n id\n title\n body\n url\n createdAt\n repository{\n databaseId\n }\n labels(first:
- 100) {\n edges {\n node {\n name\n }\n }\n }\n }\n }\n }\n}\n","variables":{"username":"Testerson
- McTest"}}'
- headers:
- User-Agent:
- - Faraday v0.15.4
- Authorization:
- - bearer
- Content-Type:
- - application/json
- Accept-Encoding:
- - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
- Accept:
- - "*/*"
- response:
- status:
- code: 200
- message: OK
- headers:
- Server:
- - GitHub.com
- Date:
- - Mon, 30 Sep 2019 19:36:49 GMT
- Content-Type:
- - application/json; charset=utf-8
- Transfer-Encoding:
- - chunked
- Status:
- - 200 OK
- Cache-Control:
- - no-cache
- X-Oauth-Scopes:
- - admin:public_key
- X-Accepted-Oauth-Scopes:
- - repo
- X-Github-Media-Type:
- - github.v4; format=json
- X-Ratelimit-Limit:
- - '5000'
- X-Ratelimit-Remaining:
- - '4998'
- X-Ratelimit-Reset:
- - '1569875809'
- Access-Control-Expose-Headers:
- - ETag, Link, Location, Retry-After, X-GitHub-OTP, X-RateLimit-Limit, X-RateLimit-Remaining,
- X-RateLimit-Reset, X-OAuth-Scopes, X-Accepted-OAuth-Scopes, X-Poll-Interval,
- X-GitHub-Media-Type
- Access-Control-Allow-Origin:
- - "*"
- Strict-Transport-Security:
- - max-age=31536000; includeSubdomains; preload
- X-Frame-Options:
- - deny
- X-Content-Type-Options:
- - nosniff
- X-Xss-Protection:
- - 1; mode=block
- Referrer-Policy:
- - origin-when-cross-origin, strict-origin-when-cross-origin
- Content-Security-Policy:
- - default-src 'none'
- X-Github-Request-Id:
- - E309:035D:11E69AC:24B7264:5D925951
- body:
- encoding: ASCII-8BIT
- string: '{"data":{"user":null},"errors":[{"type":"NOT_FOUND","path":["user"],"locations":[{"line":2,"column":3}],"message":"Could
- not resolve to a User with the login of ''Testerson McTest''."}]}'
- http_version:
- recorded_at: Mon, 30 Sep 2019 19:36:49 GMT
-recorded_with: VCR 5.0.0
diff --git a/spec/vcr/User/_complete/the_user_has_4_eligible_PRs_but_has_not_been_waiting_for_7_days/disallows_the_user_to_enter_the_completed_state.yml b/spec/vcr/User/_complete/the_user_has_4_eligible_PRs_but_has_not_been_waiting_for_7_days/disallows_the_user_to_enter_the_completed_state.yml
deleted file mode 100644
index 09d1751ff..000000000
--- a/spec/vcr/User/_complete/the_user_has_4_eligible_PRs_but_has_not_been_waiting_for_7_days/disallows_the_user_to_enter_the_completed_state.yml
+++ /dev/null
@@ -1,78 +0,0 @@
----
-http_interactions:
-- request:
- method: post
- uri: https://api.github.com/graphql
- body:
- encoding: UTF-8
- string: '{"query":"query($username:String!) {\n user(login: $username) {\n pullRequests(states:
- [OPEN, MERGED, CLOSED] last: 100) {\n nodes {\n id\n title\n body\n url\n createdAt\n repository{\n databaseId\n }\n labels(first:
- 100) {\n edges {\n node {\n name\n }\n }\n }\n }\n }\n }\n}\n","variables":{"username":"Testerson
- McTest"}}'
- headers:
- User-Agent:
- - Faraday v0.15.4
- Authorization:
- - bearer
- Content-Type:
- - application/json
- Accept-Encoding:
- - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
- Accept:
- - "*/*"
- response:
- status:
- code: 200
- message: OK
- headers:
- Server:
- - GitHub.com
- Date:
- - Mon, 30 Sep 2019 19:36:49 GMT
- Content-Type:
- - application/json; charset=utf-8
- Transfer-Encoding:
- - chunked
- Status:
- - 200 OK
- Cache-Control:
- - no-cache
- X-Oauth-Scopes:
- - admin:public_key
- X-Accepted-Oauth-Scopes:
- - repo
- X-Github-Media-Type:
- - github.v4; format=json
- X-Ratelimit-Limit:
- - '5000'
- X-Ratelimit-Remaining:
- - '4999'
- X-Ratelimit-Reset:
- - '1569875809'
- Access-Control-Expose-Headers:
- - ETag, Link, Location, Retry-After, X-GitHub-OTP, X-RateLimit-Limit, X-RateLimit-Remaining,
- X-RateLimit-Reset, X-OAuth-Scopes, X-Accepted-OAuth-Scopes, X-Poll-Interval,
- X-GitHub-Media-Type
- Access-Control-Allow-Origin:
- - "*"
- Strict-Transport-Security:
- - max-age=31536000; includeSubdomains; preload
- X-Frame-Options:
- - deny
- X-Content-Type-Options:
- - nosniff
- X-Xss-Protection:
- - 1; mode=block
- Referrer-Policy:
- - origin-when-cross-origin, strict-origin-when-cross-origin
- Content-Security-Policy:
- - default-src 'none'
- X-Github-Request-Id:
- - E308:12AA:16D38F5:2D623AA:5D925951
- body:
- encoding: ASCII-8BIT
- string: '{"data":{"user":null},"errors":[{"type":"NOT_FOUND","path":["user"],"locations":[{"line":2,"column":3}],"message":"Could
- not resolve to a User with the login of ''Testerson McTest''."}]}'
- http_version:
- recorded_at: Mon, 30 Sep 2019 19:36:49 GMT
-recorded_with: VCR 5.0.0
diff --git a/spec/vcr/User/_complete/the_user_has_4_mature_PRs/allows_the_user_to_enter_the_completed_state.yml b/spec/vcr/User/_complete/the_user_has_4_mature_PRs/allows_the_user_to_enter_the_completed_state.yml
deleted file mode 100644
index ae75bc110..000000000
--- a/spec/vcr/User/_complete/the_user_has_4_mature_PRs/allows_the_user_to_enter_the_completed_state.yml
+++ /dev/null
@@ -1,125 +0,0 @@
----
-http_interactions:
-- request:
- method: post
- uri: https://api.github.com/graphql
- body:
- encoding: UTF-8
- string: '{"query":"query($username:String!) {\n user(login: $username) {\n pullRequests(states:
- OPEN last: 100) {\n nodes {\n id\n title\n body\n url\n createdAt\n labels(first:
- 100) {\n edges {\n node {\n name\n }\n }\n }\n }\n }\n }\n}\n","variables":{"username":"mkcode"}}'
- headers:
- User-Agent:
- - Faraday v0.12.2
- Authorization:
- - bearer
- Content-Type:
- - application/json
- Accept-Encoding:
- - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
- Accept:
- - "*/*"
- response:
- status:
- code: 200
- message: OK
- headers:
- Date:
- - Fri, 13 Sep 2019 19:58:04 GMT
- Content-Type:
- - application/json; charset=utf-8
- Transfer-Encoding:
- - chunked
- Server:
- - GitHub.com
- Status:
- - 200 OK
- Cache-Control:
- - no-cache
- X-Oauth-Scopes:
- - user:email
- X-Accepted-Oauth-Scopes:
- - repo
- X-Github-Media-Type:
- - github.v4; format=json
- X-Ratelimit-Limit:
- - '5000'
- X-Ratelimit-Remaining:
- - '4965'
- X-Ratelimit-Reset:
- - '1568408095'
- Access-Control-Expose-Headers:
- - ETag, Link, Location, Retry-After, X-GitHub-OTP, X-RateLimit-Limit, X-RateLimit-Remaining,
- X-RateLimit-Reset, X-OAuth-Scopes, X-Accepted-OAuth-Scopes, X-Poll-Interval,
- X-GitHub-Media-Type
- Access-Control-Allow-Origin:
- - "*"
- Strict-Transport-Security:
- - max-age=31536000; includeSubdomains; preload
- X-Frame-Options:
- - deny
- X-Content-Type-Options:
- - nosniff
- X-Xss-Protection:
- - 1; mode=block
- Referrer-Policy:
- - origin-when-cross-origin, strict-origin-when-cross-origin
- Content-Security-Policy:
- - default-src 'none'
- Vary:
- - Accept-Encoding
- X-Github-Request-Id:
- - 3354:1F79:103968:1C4CE1:5D7BF4CC
- body:
- encoding: ASCII-8BIT
- string: '{"data":{"user":{"pullRequests":{"nodes":[{"id":"MDExOlB1bGxSZXF1ZXN0NTc5MDc4Mg==","title":"Upgraded
- to rails 3.2 stable","body":"Hi, I''m using this app as template for a new
- project. Wanted to get on rails 3.2 stable before I started. Here it is!\n\nCheers\n","url":"https://github.com/maccman/spine.rails3/pull/6","createdAt":"2013-05-17T23:05:41Z","labels":{"edges":[]}},{"id":"MDExOlB1bGxSZXF1ZXN0NDcxMDUxNzU=","title":"Delete
- repos cleanup","body":"@PeterDaveHello - Thanks for your contribution. I''m
- using this work as an opportunity to clean up how we are doing testing in
- this app. I see that you basically copied the format from the create_repos
- spec - which was a good move.\n\nAfter reworking this so I can understand
- what is happening in https://github.com/education/teachers_pet/commit/be8a8b1ddb3a8ef79a88f53f6bd05649417f0515,
- I notice that we are not stubbing any repo deletion requests - which then
- therefore would mean that these tests aren''t actually sending any API requests.\n\n@PeterDaveHello
- - these tests should be hitting a delete repo endpoint on the GitHub API,
- should they not? Can we rework them so that they do? These tests should fail
- in the case the we comment out the `teachers_pet(:delete_repos)`... block.\n\n/cc
- @johndbritton \n","url":"https://github.com/education/teachers_pet/pull/126","createdAt":"2015-10-08T02:24:19Z","labels":{"edges":[]}},{"id":"MDExOlB1bGxSZXF1ZXN0NDc0Nzk5ODQ=","title":"Results
- by cookie","body":"Hi @deski - Following up on our discussion in #78 \n\nThis
- PR adds info from the peek cookie as discussed. It does not save Peek results
- unless the peek cookie is enabled. Always sets the cookie if peek is enabled.\n\nIn
- the case Peek was not enabled for a request, and is toggled on, `Peek::Views`
- with a `data-defer-to` are hidden and a refresh message is displayed: \n\n![screen
- shot 2015-10-12 at 8 41 31 pm](https://cloud.githubusercontent.com/assets/283496/10442611/22bb6a2e-7122-11e5-8fb3-c3fb5ed333b7.png)\n","url":"https://github.com/peek/peek/pull/79","createdAt":"2015-10-13T00:46:43Z","labels":{"edges":[]}},{"id":"MDExOlB1bGxSZXF1ZXN0NTE0MTg4ODg=","title":"Update
- README.md","body":"Add maintenance note to readme\n","url":"https://github.com/vulume/Cordova-DBCamera/pull/1","createdAt":"2015-11-20T22:49:53Z","labels":{"edges":[]}},{"id":"MDExOlB1bGxSZXF1ZXN0NjkyNjE4Mjk=","title":"Add
- natural layer","body":"Adds the beginnings of a prose layer.\n\nReplaces #5403
- according to the discussion in #5996.\n","url":"https://github.com/syl20bnr/spacemacs/pull/6012","createdAt":"2016-05-08T06:24:38Z","labels":{"edges":[{"node":{"name":"New
- Layer"}}]}},{"id":"MDExOlB1bGxSZXF1ZXN0OTA4ODAzMzQ=","title":"Coercion type
- systems","body":"Introducing switchable type coercion systems for Hashie.
- Follows up on #239.\n\nAdds ''dry-types'' and ''activemodel'' alongside Hashie''s
- builtin coercion system. Basic usage is written up in the README.\n\nFor the
- most part, reading the source should be straight forward. The ''coercion''
- folder under ''extensions'' contains the implementation of the 3 coercion
- systems. The `Hashie::Extensions::Coercion` module was split into two files.
- The file itself contains the interface and common coercion methods, while
- the `Coercion::HashieTypes` class now contains the actual coercion implementation.\n\nThe
- only confusing part is the `CoercionSystemIncludeBuilder` defined under `Hashie::Extensions::Coercion`.
- The purpose of this class is to DRY up the included hooks for `Hashie::Extensions::Coercion`
- and `Hashie::Extensions::Dash::Coercion`. The common includes are defined
- once, and reused in the default `included` method and the `active_model` and
- `dry_types` methods on both the default and Dash coercion classes. The `active_model`
- and `dry_types` methods on `Hashie::Extensions::Coercion` and `Hashie::Extensions::Dash::Coercion`
- both return an anonymous module with an `included` method correctly defined,
- which then is immediately executed because it then included. \n\nExample:
- \n\n``` ruby\nmod = Hashie::Extensions::Coercion.dry_types\n# => \n\nmod.methods\n#=> [:included]\n\nclass MyHash < Hashie::Hash\n include
- mod\nend\n#=> Hashie::Extensions::Coercion::ClassMethods, Hashie::Extensions::Coercion::InstanceMethods,
- and Hashie::Extensions::Coercion::DryTypes are all mixed into MyHash\n```\n\nThis
- is 100% backwards compatible and all the tests pass. I did not add any additional
- tests - we should not need many as the new coercion systems are well tested
- in their own repos. We may want to add a few tests though.\n","url":"https://github.com/intridea/hashie/pull/379","createdAt":"2016-10-25T19:59:18Z","labels":{"edges":[{"node":{"name":"new
- feature"}}]}}]}}}}'
- http_version:
- recorded_at: Fri, 13 Sep 2019 19:58:04 GMT
-recorded_with: VCR 5.0.0
diff --git a/spec/vcr/User/_complete/the_user_has_4_mature_PRs/lets_user_to_enter_completed_state.yml b/spec/vcr/User/_complete/the_user_has_4_mature_PRs/lets_user_to_enter_completed_state.yml
deleted file mode 100644
index 4816c2d29..000000000
--- a/spec/vcr/User/_complete/the_user_has_4_mature_PRs/lets_user_to_enter_completed_state.yml
+++ /dev/null
@@ -1,123 +0,0 @@
----
-http_interactions:
-- request:
- method: post
- uri: https://api.github.com/graphql
- body:
- encoding: UTF-8
- string: '{"query":"query($username:String!) {\n user(login: $username) {\n pullRequests(states:
- OPEN last: 100) {\n nodes {\n id\n title\n body\n url\n createdAt\n labels(first:
- 100) {\n edges {\n node {\n name\n }\n }\n }\n }\n }\n }\n}\n","variables":{"username":"mkcode"}}'
- headers:
- User-Agent:
- - Faraday v0.12.2
- Authorization:
- - bearer
- Content-Type:
- - application/json
- Accept-Encoding:
- - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
- Accept:
- - "*/*"
- response:
- status:
- code: 200
- message: OK
- headers:
- Server:
- - GitHub.com
- Date:
- - Fri, 13 Sep 2019 20:08:25 GMT
- Content-Type:
- - application/json; charset=utf-8
- Transfer-Encoding:
- - chunked
- Status:
- - 200 OK
- Cache-Control:
- - no-cache
- X-Oauth-Scopes:
- - user:email
- X-Accepted-Oauth-Scopes:
- - repo
- X-Github-Media-Type:
- - github.v4; format=json
- X-Ratelimit-Limit:
- - '5000'
- X-Ratelimit-Remaining:
- - '4945'
- X-Ratelimit-Reset:
- - '1568408901'
- Access-Control-Expose-Headers:
- - ETag, Link, Location, Retry-After, X-GitHub-OTP, X-RateLimit-Limit, X-RateLimit-Remaining,
- X-RateLimit-Reset, X-OAuth-Scopes, X-Accepted-OAuth-Scopes, X-Poll-Interval,
- X-GitHub-Media-Type
- Access-Control-Allow-Origin:
- - "*"
- Strict-Transport-Security:
- - max-age=31536000; includeSubdomains; preload
- X-Frame-Options:
- - deny
- X-Content-Type-Options:
- - nosniff
- X-Xss-Protection:
- - 1; mode=block
- Referrer-Policy:
- - origin-when-cross-origin, strict-origin-when-cross-origin
- Content-Security-Policy:
- - default-src 'none'
- X-Github-Request-Id:
- - 4A0C:2E75:4B6491:B92D81:5D7BF738
- body:
- encoding: ASCII-8BIT
- string: '{"data":{"user":{"pullRequests":{"nodes":[{"id":"MDExOlB1bGxSZXF1ZXN0NTc5MDc4Mg==","title":"Upgraded
- to rails 3.2 stable","body":"Hi, I''m using this app as template for a new
- project. Wanted to get on rails 3.2 stable before I started. Here it is!\n\nCheers\n","url":"https://github.com/maccman/spine.rails3/pull/6","createdAt":"2013-05-17T23:05:41Z","labels":{"edges":[]}},{"id":"MDExOlB1bGxSZXF1ZXN0NDcxMDUxNzU=","title":"Delete
- repos cleanup","body":"@PeterDaveHello - Thanks for your contribution. I''m
- using this work as an opportunity to clean up how we are doing testing in
- this app. I see that you basically copied the format from the create_repos
- spec - which was a good move.\n\nAfter reworking this so I can understand
- what is happening in https://github.com/education/teachers_pet/commit/be8a8b1ddb3a8ef79a88f53f6bd05649417f0515,
- I notice that we are not stubbing any repo deletion requests - which then
- therefore would mean that these tests aren''t actually sending any API requests.\n\n@PeterDaveHello
- - these tests should be hitting a delete repo endpoint on the GitHub API,
- should they not? Can we rework them so that they do? These tests should fail
- in the case the we comment out the `teachers_pet(:delete_repos)`... block.\n\n/cc
- @johndbritton \n","url":"https://github.com/education/teachers_pet/pull/126","createdAt":"2015-10-08T02:24:19Z","labels":{"edges":[]}},{"id":"MDExOlB1bGxSZXF1ZXN0NDc0Nzk5ODQ=","title":"Results
- by cookie","body":"Hi @deski - Following up on our discussion in #78 \n\nThis
- PR adds info from the peek cookie as discussed. It does not save Peek results
- unless the peek cookie is enabled. Always sets the cookie if peek is enabled.\n\nIn
- the case Peek was not enabled for a request, and is toggled on, `Peek::Views`
- with a `data-defer-to` are hidden and a refresh message is displayed: \n\n![screen
- shot 2015-10-12 at 8 41 31 pm](https://cloud.githubusercontent.com/assets/283496/10442611/22bb6a2e-7122-11e5-8fb3-c3fb5ed333b7.png)\n","url":"https://github.com/peek/peek/pull/79","createdAt":"2015-10-13T00:46:43Z","labels":{"edges":[]}},{"id":"MDExOlB1bGxSZXF1ZXN0NTE0MTg4ODg=","title":"Update
- README.md","body":"Add maintenance note to readme\n","url":"https://github.com/vulume/Cordova-DBCamera/pull/1","createdAt":"2015-11-20T22:49:53Z","labels":{"edges":[]}},{"id":"MDExOlB1bGxSZXF1ZXN0NjkyNjE4Mjk=","title":"Add
- natural layer","body":"Adds the beginnings of a prose layer.\n\nReplaces #5403
- according to the discussion in #5996.\n","url":"https://github.com/syl20bnr/spacemacs/pull/6012","createdAt":"2016-05-08T06:24:38Z","labels":{"edges":[{"node":{"name":"New
- Layer"}}]}},{"id":"MDExOlB1bGxSZXF1ZXN0OTA4ODAzMzQ=","title":"Coercion type
- systems","body":"Introducing switchable type coercion systems for Hashie.
- Follows up on #239.\n\nAdds ''dry-types'' and ''activemodel'' alongside Hashie''s
- builtin coercion system. Basic usage is written up in the README.\n\nFor the
- most part, reading the source should be straight forward. The ''coercion''
- folder under ''extensions'' contains the implementation of the 3 coercion
- systems. The `Hashie::Extensions::Coercion` module was split into two files.
- The file itself contains the interface and common coercion methods, while
- the `Coercion::HashieTypes` class now contains the actual coercion implementation.\n\nThe
- only confusing part is the `CoercionSystemIncludeBuilder` defined under `Hashie::Extensions::Coercion`.
- The purpose of this class is to DRY up the included hooks for `Hashie::Extensions::Coercion`
- and `Hashie::Extensions::Dash::Coercion`. The common includes are defined
- once, and reused in the default `included` method and the `active_model` and
- `dry_types` methods on both the default and Dash coercion classes. The `active_model`
- and `dry_types` methods on `Hashie::Extensions::Coercion` and `Hashie::Extensions::Dash::Coercion`
- both return an anonymous module with an `included` method correctly defined,
- which then is immediately executed because it then included. \n\nExample:
- \n\n``` ruby\nmod = Hashie::Extensions::Coercion.dry_types\n# => \n\nmod.methods\n#=> [:included]\n\nclass MyHash < Hashie::Hash\n include
- mod\nend\n#=> Hashie::Extensions::Coercion::ClassMethods, Hashie::Extensions::Coercion::InstanceMethods,
- and Hashie::Extensions::Coercion::DryTypes are all mixed into MyHash\n```\n\nThis
- is 100% backwards compatible and all the tests pass. I did not add any additional
- tests - we should not need many as the new coercion systems are well tested
- in their own repos. We may want to add a few tests though.\n","url":"https://github.com/intridea/hashie/pull/379","createdAt":"2016-10-25T19:59:18Z","labels":{"edges":[{"node":{"name":"new
- feature"}}]}}]}}}}'
- http_version:
- recorded_at: Fri, 13 Sep 2019 20:08:25 GMT
-recorded_with: VCR 5.0.0
diff --git a/spec/vcr/User/_complete/the_user_has_4_mature_PRs/persists_the_completed_state.yml b/spec/vcr/User/_complete/the_user_has_4_mature_PRs/persists_the_completed_state.yml
deleted file mode 100644
index 4ba2344e7..000000000
--- a/spec/vcr/User/_complete/the_user_has_4_mature_PRs/persists_the_completed_state.yml
+++ /dev/null
@@ -1,125 +0,0 @@
----
-http_interactions:
-- request:
- method: post
- uri: https://api.github.com/graphql
- body:
- encoding: UTF-8
- string: '{"query":"query($username:String!) {\n user(login: $username) {\n pullRequests(states:
- OPEN last: 100) {\n nodes {\n id\n title\n body\n url\n createdAt\n labels(first:
- 100) {\n edges {\n node {\n name\n }\n }\n }\n }\n }\n }\n}\n","variables":{"username":"mkcode"}}'
- headers:
- User-Agent:
- - Faraday v0.12.2
- Authorization:
- - bearer
- Content-Type:
- - application/json
- Accept-Encoding:
- - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
- Accept:
- - "*/*"
- response:
- status:
- code: 200
- message: OK
- headers:
- Date:
- - Fri, 13 Sep 2019 19:58:05 GMT
- Content-Type:
- - application/json; charset=utf-8
- Transfer-Encoding:
- - chunked
- Server:
- - GitHub.com
- Status:
- - 200 OK
- Cache-Control:
- - no-cache
- X-Oauth-Scopes:
- - user:email
- X-Accepted-Oauth-Scopes:
- - repo
- X-Github-Media-Type:
- - github.v4; format=json
- X-Ratelimit-Limit:
- - '5000'
- X-Ratelimit-Remaining:
- - '4964'
- X-Ratelimit-Reset:
- - '1568408095'
- Access-Control-Expose-Headers:
- - ETag, Link, Location, Retry-After, X-GitHub-OTP, X-RateLimit-Limit, X-RateLimit-Remaining,
- X-RateLimit-Reset, X-OAuth-Scopes, X-Accepted-OAuth-Scopes, X-Poll-Interval,
- X-GitHub-Media-Type
- Access-Control-Allow-Origin:
- - "*"
- Strict-Transport-Security:
- - max-age=31536000; includeSubdomains; preload
- X-Frame-Options:
- - deny
- X-Content-Type-Options:
- - nosniff
- X-Xss-Protection:
- - 1; mode=block
- Referrer-Policy:
- - origin-when-cross-origin, strict-origin-when-cross-origin
- Content-Security-Policy:
- - default-src 'none'
- Vary:
- - Accept-Encoding
- X-Github-Request-Id:
- - 34D6:5456:187ABD:2A4A86:5D7BF4CD
- body:
- encoding: ASCII-8BIT
- string: '{"data":{"user":{"pullRequests":{"nodes":[{"id":"MDExOlB1bGxSZXF1ZXN0NTc5MDc4Mg==","title":"Upgraded
- to rails 3.2 stable","body":"Hi, I''m using this app as template for a new
- project. Wanted to get on rails 3.2 stable before I started. Here it is!\n\nCheers\n","url":"https://github.com/maccman/spine.rails3/pull/6","createdAt":"2013-05-17T23:05:41Z","labels":{"edges":[]}},{"id":"MDExOlB1bGxSZXF1ZXN0NDcxMDUxNzU=","title":"Delete
- repos cleanup","body":"@PeterDaveHello - Thanks for your contribution. I''m
- using this work as an opportunity to clean up how we are doing testing in
- this app. I see that you basically copied the format from the create_repos
- spec - which was a good move.\n\nAfter reworking this so I can understand
- what is happening in https://github.com/education/teachers_pet/commit/be8a8b1ddb3a8ef79a88f53f6bd05649417f0515,
- I notice that we are not stubbing any repo deletion requests - which then
- therefore would mean that these tests aren''t actually sending any API requests.\n\n@PeterDaveHello
- - these tests should be hitting a delete repo endpoint on the GitHub API,
- should they not? Can we rework them so that they do? These tests should fail
- in the case the we comment out the `teachers_pet(:delete_repos)`... block.\n\n/cc
- @johndbritton \n","url":"https://github.com/education/teachers_pet/pull/126","createdAt":"2015-10-08T02:24:19Z","labels":{"edges":[]}},{"id":"MDExOlB1bGxSZXF1ZXN0NDc0Nzk5ODQ=","title":"Results
- by cookie","body":"Hi @deski - Following up on our discussion in #78 \n\nThis
- PR adds info from the peek cookie as discussed. It does not save Peek results
- unless the peek cookie is enabled. Always sets the cookie if peek is enabled.\n\nIn
- the case Peek was not enabled for a request, and is toggled on, `Peek::Views`
- with a `data-defer-to` are hidden and a refresh message is displayed: \n\n![screen
- shot 2015-10-12 at 8 41 31 pm](https://cloud.githubusercontent.com/assets/283496/10442611/22bb6a2e-7122-11e5-8fb3-c3fb5ed333b7.png)\n","url":"https://github.com/peek/peek/pull/79","createdAt":"2015-10-13T00:46:43Z","labels":{"edges":[]}},{"id":"MDExOlB1bGxSZXF1ZXN0NTE0MTg4ODg=","title":"Update
- README.md","body":"Add maintenance note to readme\n","url":"https://github.com/vulume/Cordova-DBCamera/pull/1","createdAt":"2015-11-20T22:49:53Z","labels":{"edges":[]}},{"id":"MDExOlB1bGxSZXF1ZXN0NjkyNjE4Mjk=","title":"Add
- natural layer","body":"Adds the beginnings of a prose layer.\n\nReplaces #5403
- according to the discussion in #5996.\n","url":"https://github.com/syl20bnr/spacemacs/pull/6012","createdAt":"2016-05-08T06:24:38Z","labels":{"edges":[{"node":{"name":"New
- Layer"}}]}},{"id":"MDExOlB1bGxSZXF1ZXN0OTA4ODAzMzQ=","title":"Coercion type
- systems","body":"Introducing switchable type coercion systems for Hashie.
- Follows up on #239.\n\nAdds ''dry-types'' and ''activemodel'' alongside Hashie''s
- builtin coercion system. Basic usage is written up in the README.\n\nFor the
- most part, reading the source should be straight forward. The ''coercion''
- folder under ''extensions'' contains the implementation of the 3 coercion
- systems. The `Hashie::Extensions::Coercion` module was split into two files.
- The file itself contains the interface and common coercion methods, while
- the `Coercion::HashieTypes` class now contains the actual coercion implementation.\n\nThe
- only confusing part is the `CoercionSystemIncludeBuilder` defined under `Hashie::Extensions::Coercion`.
- The purpose of this class is to DRY up the included hooks for `Hashie::Extensions::Coercion`
- and `Hashie::Extensions::Dash::Coercion`. The common includes are defined
- once, and reused in the default `included` method and the `active_model` and
- `dry_types` methods on both the default and Dash coercion classes. The `active_model`
- and `dry_types` methods on `Hashie::Extensions::Coercion` and `Hashie::Extensions::Dash::Coercion`
- both return an anonymous module with an `included` method correctly defined,
- which then is immediately executed because it then included. \n\nExample:
- \n\n``` ruby\nmod = Hashie::Extensions::Coercion.dry_types\n# => \n\nmod.methods\n#=> [:included]\n\nclass MyHash < Hashie::Hash\n include
- mod\nend\n#=> Hashie::Extensions::Coercion::ClassMethods, Hashie::Extensions::Coercion::InstanceMethods,
- and Hashie::Extensions::Coercion::DryTypes are all mixed into MyHash\n```\n\nThis
- is 100% backwards compatible and all the tests pass. I did not add any additional
- tests - we should not need many as the new coercion systems are well tested
- in their own repos. We may want to add a few tests though.\n","url":"https://github.com/intridea/hashie/pull/379","createdAt":"2016-10-25T19:59:18Z","labels":{"edges":[{"node":{"name":"new
- feature"}}]}}]}}}}'
- http_version:
- recorded_at: Fri, 13 Sep 2019 19:58:05 GMT
-recorded_with: VCR 5.0.0
diff --git a/spec/vcr/User/_complete/the_user_neither_4_eligible_PRs_nor_has_been_waiting_for_7_days/disallows_the_user_to_enter_the_completed_state.yml b/spec/vcr/User/_complete/the_user_neither_4_eligible_PRs_nor_has_been_waiting_for_7_days/disallows_the_user_to_enter_the_completed_state.yml
deleted file mode 100644
index f01cf597b..000000000
--- a/spec/vcr/User/_complete/the_user_neither_4_eligible_PRs_nor_has_been_waiting_for_7_days/disallows_the_user_to_enter_the_completed_state.yml
+++ /dev/null
@@ -1,78 +0,0 @@
----
-http_interactions:
-- request:
- method: post
- uri: https://api.github.com/graphql
- body:
- encoding: UTF-8
- string: '{"query":"query($username:String!) {\n user(login: $username) {\n pullRequests(states:
- [OPEN, MERGED, CLOSED] last: 100) {\n nodes {\n id\n title\n body\n url\n createdAt\n repository{\n databaseId\n }\n labels(first:
- 100) {\n edges {\n node {\n name\n }\n }\n }\n }\n }\n }\n}\n","variables":{"username":"Testerson
- McTest"}}'
- headers:
- User-Agent:
- - Faraday v0.15.4
- Authorization:
- - bearer
- Content-Type:
- - application/json
- Accept-Encoding:
- - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
- Accept:
- - "*/*"
- response:
- status:
- code: 200
- message: OK
- headers:
- Server:
- - GitHub.com
- Date:
- - Mon, 30 Sep 2019 19:36:50 GMT
- Content-Type:
- - application/json; charset=utf-8
- Transfer-Encoding:
- - chunked
- Status:
- - 200 OK
- Cache-Control:
- - no-cache
- X-Oauth-Scopes:
- - admin:public_key
- X-Accepted-Oauth-Scopes:
- - repo
- X-Github-Media-Type:
- - github.v4; format=json
- X-Ratelimit-Limit:
- - '5000'
- X-Ratelimit-Remaining:
- - '4995'
- X-Ratelimit-Reset:
- - '1569875809'
- Access-Control-Expose-Headers:
- - ETag, Link, Location, Retry-After, X-GitHub-OTP, X-RateLimit-Limit, X-RateLimit-Remaining,
- X-RateLimit-Reset, X-OAuth-Scopes, X-Accepted-OAuth-Scopes, X-Poll-Interval,
- X-GitHub-Media-Type
- Access-Control-Allow-Origin:
- - "*"
- Strict-Transport-Security:
- - max-age=31536000; includeSubdomains; preload
- X-Frame-Options:
- - deny
- X-Content-Type-Options:
- - nosniff
- X-Xss-Protection:
- - 1; mode=block
- Referrer-Policy:
- - origin-when-cross-origin, strict-origin-when-cross-origin
- Content-Security-Policy:
- - default-src 'none'
- X-Github-Request-Id:
- - E310:4C9D:A7F3FE:18EB043:5D925952
- body:
- encoding: ASCII-8BIT
- string: '{"data":{"user":null},"errors":[{"type":"NOT_FOUND","path":["user"],"locations":[{"line":2,"column":3}],"message":"Could
- not resolve to a User with the login of ''Testerson McTest''."}]}'
- http_version:
- recorded_at: Mon, 30 Sep 2019 19:36:50 GMT
-recorded_with: VCR 5.0.0
diff --git a/spec/vcr/User/_incomplete/hacktoberfest_has_ended/persists_the_registered_state.yml b/spec/vcr/User/_incomplete/hacktoberfest_has_ended/persists_the_registered_state.yml
deleted file mode 100644
index 7484e40c5..000000000
--- a/spec/vcr/User/_incomplete/hacktoberfest_has_ended/persists_the_registered_state.yml
+++ /dev/null
@@ -1,165 +0,0 @@
----
-http_interactions:
-- request:
- method: post
- uri: https://api.github.com/graphql
- body:
- encoding: UTF-8
- string: '{"query":"query($username:String!) {\n user(login: $username) {\n pullRequests(states:
- OPEN last: 100) {\n nodes {\n id\n title\n body\n url\n createdAt\n labels(first:
- 100) {\n edges {\n node {\n name\n }\n }\n }\n }\n }\n }\n}\n","variables":{"username":"mkcode"}}'
- headers:
- User-Agent:
- - Faraday v0.12.2
- Authorization:
- - bearer
- Content-Type:
- - application/json
- Accept-Encoding:
- - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
- Accept:
- - "*/*"
- response:
- status:
- code: 200
- message: OK
- headers:
- Date:
- - Fri, 13 Sep 2019 19:58:08 GMT
- Content-Type:
- - application/json; charset=utf-8
- Transfer-Encoding:
- - chunked
- Server:
- - GitHub.com
- Status:
- - 200 OK
- Cache-Control:
- - no-cache
- X-Oauth-Scopes:
- - user:email
- X-Accepted-Oauth-Scopes:
- - repo
- X-Github-Media-Type:
- - github.v4; format=json
- X-Ratelimit-Limit:
- - '5000'
- X-Ratelimit-Remaining:
- - '4956'
- X-Ratelimit-Reset:
- - '1568408095'
- Access-Control-Expose-Headers:
- - ETag, Link, Location, Retry-After, X-GitHub-OTP, X-RateLimit-Limit, X-RateLimit-Remaining,
- X-RateLimit-Reset, X-OAuth-Scopes, X-Accepted-OAuth-Scopes, X-Poll-Interval,
- X-GitHub-Media-Type
- Access-Control-Allow-Origin:
- - "*"
- Strict-Transport-Security:
- - max-age=31536000; includeSubdomains; preload
- X-Frame-Options:
- - deny
- X-Content-Type-Options:
- - nosniff
- X-Xss-Protection:
- - 1; mode=block
- Referrer-Policy:
- - origin-when-cross-origin, strict-origin-when-cross-origin
- Content-Security-Policy:
- - default-src 'none'
- Vary:
- - Accept-Encoding
- X-Github-Request-Id:
- - 77D7:6F22:50342:7DAC3:5D7BF4CF
- body:
- encoding: ASCII-8BIT
- string: '{"data":{"user":{"pullRequests":{"nodes":[{"id":"MDExOlB1bGxSZXF1ZXN0NTc5MDc4Mg==","title":"Upgraded
- to rails 3.2 stable","body":"Hi, I''m using this app as template for a new
- project. Wanted to get on rails 3.2 stable before I started. Here it is!\n\nCheers\n","url":"https://github.com/maccman/spine.rails3/pull/6","createdAt":"2013-05-17T23:05:41Z","labels":{"edges":[]}},{"id":"MDExOlB1bGxSZXF1ZXN0NDcxMDUxNzU=","title":"Delete
- repos cleanup","body":"@PeterDaveHello - Thanks for your contribution. I''m
- using this work as an opportunity to clean up how we are doing testing in
- this app. I see that you basically copied the format from the create_repos
- spec - which was a good move.\n\nAfter reworking this so I can understand
- what is happening in https://github.com/education/teachers_pet/commit/be8a8b1ddb3a8ef79a88f53f6bd05649417f0515,
- I notice that we are not stubbing any repo deletion requests - which then
- therefore would mean that these tests aren''t actually sending any API requests.\n\n@PeterDaveHello
- - these tests should be hitting a delete repo endpoint on the GitHub API,
- should they not? Can we rework them so that they do? These tests should fail
- in the case the we comment out the `teachers_pet(:delete_repos)`... block.\n\n/cc
- @johndbritton \n","url":"https://github.com/education/teachers_pet/pull/126","createdAt":"2015-10-08T02:24:19Z","labels":{"edges":[]}},{"id":"MDExOlB1bGxSZXF1ZXN0NDc0Nzk5ODQ=","title":"Results
- by cookie","body":"Hi @deski - Following up on our discussion in #78 \n\nThis
- PR adds info from the peek cookie as discussed. It does not save Peek results
- unless the peek cookie is enabled. Always sets the cookie if peek is enabled.\n\nIn
- the case Peek was not enabled for a request, and is toggled on, `Peek::Views`
- with a `data-defer-to` are hidden and a refresh message is displayed: \n\n![screen
- shot 2015-10-12 at 8 41 31 pm](https://cloud.githubusercontent.com/assets/283496/10442611/22bb6a2e-7122-11e5-8fb3-c3fb5ed333b7.png)\n","url":"https://github.com/peek/peek/pull/79","createdAt":"2015-10-13T00:46:43Z","labels":{"edges":[]}},{"id":"MDExOlB1bGxSZXF1ZXN0NTE0MTg4ODg=","title":"Update
- README.md","body":"Add maintenance note to readme\n","url":"https://github.com/vulume/Cordova-DBCamera/pull/1","createdAt":"2015-11-20T22:49:53Z","labels":{"edges":[]}},{"id":"MDExOlB1bGxSZXF1ZXN0NjkyNjE4Mjk=","title":"Add
- natural layer","body":"Adds the beginnings of a prose layer.\n\nReplaces #5403
- according to the discussion in #5996.\n","url":"https://github.com/syl20bnr/spacemacs/pull/6012","createdAt":"2016-05-08T06:24:38Z","labels":{"edges":[{"node":{"name":"New
- Layer"}}]}},{"id":"MDExOlB1bGxSZXF1ZXN0OTA4ODAzMzQ=","title":"Coercion type
- systems","body":"Introducing switchable type coercion systems for Hashie.
- Follows up on #239.\n\nAdds ''dry-types'' and ''activemodel'' alongside Hashie''s
- builtin coercion system. Basic usage is written up in the README.\n\nFor the
- most part, reading the source should be straight forward. The ''coercion''
- folder under ''extensions'' contains the implementation of the 3 coercion
- systems. The `Hashie::Extensions::Coercion` module was split into two files.
- The file itself contains the interface and common coercion methods, while
- the `Coercion::HashieTypes` class now contains the actual coercion implementation.\n\nThe
- only confusing part is the `CoercionSystemIncludeBuilder` defined under `Hashie::Extensions::Coercion`.
- The purpose of this class is to DRY up the included hooks for `Hashie::Extensions::Coercion`
- and `Hashie::Extensions::Dash::Coercion`. The common includes are defined
- once, and reused in the default `included` method and the `active_model` and
- `dry_types` methods on both the default and Dash coercion classes. The `active_model`
- and `dry_types` methods on `Hashie::Extensions::Coercion` and `Hashie::Extensions::Dash::Coercion`
- both return an anonymous module with an `included` method correctly defined,
- which then is immediately executed because it then included. \n\nExample:
- \n\n``` ruby\nmod = Hashie::Extensions::Coercion.dry_types\n# => \n\nmod.methods\n#=> [:included]\n\nclass MyHash < Hashie::Hash\n include
- mod\nend\n#=> Hashie::Extensions::Coercion::ClassMethods, Hashie::Extensions::Coercion::InstanceMethods,
- and Hashie::Extensions::Coercion::DryTypes are all mixed into MyHash\n```\n\nThis
- is 100% backwards compatible and all the tests pass. I did not add any additional
- tests - we should not need many as the new coercion systems are well tested
- in their own repos. We may want to add a few tests though.\n","url":"https://github.com/intridea/hashie/pull/379","createdAt":"2016-10-25T19:59:18Z","labels":{"edges":[{"node":{"name":"new
- feature"}}]}}]}}}}'
- http_version:
- recorded_at: Fri, 13 Sep 2019 19:58:08 GMT
-- request:
- method: post
- uri: https://api.segment.io/v1/import
- body:
- encoding: UTF-8
- string: '{"sentAt":"2019-09-16T18:15:25.324-04:00","batch":[{"userId":2481,"anonymousId":null,"integrations":null,"context":{"library":{"name":"analytics-ruby","version":"2.0.13"}},"traits":{},"options":null,"timestamp":"2019-09-16T18:15:25.324-04:00","type":"identify","messageId":"74320148-2e8a-46e7-9c02-bb5adfea7e50"}]}'
- headers:
- Content-Type:
- - application/json
- Accept:
- - application/json
- Accept-Encoding:
- - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
- User-Agent:
- - Ruby
- Authorization:
- - Basic NWw3czVyTVl0T3doWUNZMDBTcnIzMTYzWkZmR2N5ZVQ6
- response:
- status:
- code: 200
- message: OK
- headers:
- Date:
- - Mon, 16 Sep 2019 22:15:25 GMT
- Content-Type:
- - application/json
- Content-Length:
- - '21'
- Connection:
- - keep-alive
- Vary:
- - Origin
- body:
- encoding: UTF-8
- string: |-
- {
- "success": true
- }
- http_version:
- recorded_at: Mon, 16 Sep 2019 22:15:25 GMT
-recorded_with: VCR 5.0.0
diff --git a/spec/vcr/User/_incomplete/hacktoberfest_has_ended/transitions_the_user_to_the_incomplete_state.yml b/spec/vcr/User/_incomplete/hacktoberfest_has_ended/transitions_the_user_to_the_incomplete_state.yml
deleted file mode 100644
index 0db33ef5f..000000000
--- a/spec/vcr/User/_incomplete/hacktoberfest_has_ended/transitions_the_user_to_the_incomplete_state.yml
+++ /dev/null
@@ -1,165 +0,0 @@
----
-http_interactions:
-- request:
- method: post
- uri: https://api.github.com/graphql
- body:
- encoding: UTF-8
- string: '{"query":"query($username:String!) {\n user(login: $username) {\n pullRequests(states:
- OPEN last: 100) {\n nodes {\n id\n title\n body\n url\n createdAt\n labels(first:
- 100) {\n edges {\n node {\n name\n }\n }\n }\n }\n }\n }\n}\n","variables":{"username":"mkcode"}}'
- headers:
- User-Agent:
- - Faraday v0.12.2
- Authorization:
- - bearer
- Content-Type:
- - application/json
- Accept-Encoding:
- - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
- Accept:
- - "*/*"
- response:
- status:
- code: 200
- message: OK
- headers:
- Date:
- - Fri, 13 Sep 2019 19:58:07 GMT
- Content-Type:
- - application/json; charset=utf-8
- Transfer-Encoding:
- - chunked
- Server:
- - GitHub.com
- Status:
- - 200 OK
- Cache-Control:
- - no-cache
- X-Oauth-Scopes:
- - user:email
- X-Accepted-Oauth-Scopes:
- - repo
- X-Github-Media-Type:
- - github.v4; format=json
- X-Ratelimit-Limit:
- - '5000'
- X-Ratelimit-Remaining:
- - '4957'
- X-Ratelimit-Reset:
- - '1568408095'
- Access-Control-Expose-Headers:
- - ETag, Link, Location, Retry-After, X-GitHub-OTP, X-RateLimit-Limit, X-RateLimit-Remaining,
- X-RateLimit-Reset, X-OAuth-Scopes, X-Accepted-OAuth-Scopes, X-Poll-Interval,
- X-GitHub-Media-Type
- Access-Control-Allow-Origin:
- - "*"
- Strict-Transport-Security:
- - max-age=31536000; includeSubdomains; preload
- X-Frame-Options:
- - deny
- X-Content-Type-Options:
- - nosniff
- X-Xss-Protection:
- - 1; mode=block
- Referrer-Policy:
- - origin-when-cross-origin, strict-origin-when-cross-origin
- Content-Security-Policy:
- - default-src 'none'
- Vary:
- - Accept-Encoding
- X-Github-Request-Id:
- - 3E01:0E27:1EEE16:30B2C2:5D7BF4CF
- body:
- encoding: ASCII-8BIT
- string: '{"data":{"user":{"pullRequests":{"nodes":[{"id":"MDExOlB1bGxSZXF1ZXN0NTc5MDc4Mg==","title":"Upgraded
- to rails 3.2 stable","body":"Hi, I''m using this app as template for a new
- project. Wanted to get on rails 3.2 stable before I started. Here it is!\n\nCheers\n","url":"https://github.com/maccman/spine.rails3/pull/6","createdAt":"2013-05-17T23:05:41Z","labels":{"edges":[]}},{"id":"MDExOlB1bGxSZXF1ZXN0NDcxMDUxNzU=","title":"Delete
- repos cleanup","body":"@PeterDaveHello - Thanks for your contribution. I''m
- using this work as an opportunity to clean up how we are doing testing in
- this app. I see that you basically copied the format from the create_repos
- spec - which was a good move.\n\nAfter reworking this so I can understand
- what is happening in https://github.com/education/teachers_pet/commit/be8a8b1ddb3a8ef79a88f53f6bd05649417f0515,
- I notice that we are not stubbing any repo deletion requests - which then
- therefore would mean that these tests aren''t actually sending any API requests.\n\n@PeterDaveHello
- - these tests should be hitting a delete repo endpoint on the GitHub API,
- should they not? Can we rework them so that they do? These tests should fail
- in the case the we comment out the `teachers_pet(:delete_repos)`... block.\n\n/cc
- @johndbritton \n","url":"https://github.com/education/teachers_pet/pull/126","createdAt":"2015-10-08T02:24:19Z","labels":{"edges":[]}},{"id":"MDExOlB1bGxSZXF1ZXN0NDc0Nzk5ODQ=","title":"Results
- by cookie","body":"Hi @deski - Following up on our discussion in #78 \n\nThis
- PR adds info from the peek cookie as discussed. It does not save Peek results
- unless the peek cookie is enabled. Always sets the cookie if peek is enabled.\n\nIn
- the case Peek was not enabled for a request, and is toggled on, `Peek::Views`
- with a `data-defer-to` are hidden and a refresh message is displayed: \n\n![screen
- shot 2015-10-12 at 8 41 31 pm](https://cloud.githubusercontent.com/assets/283496/10442611/22bb6a2e-7122-11e5-8fb3-c3fb5ed333b7.png)\n","url":"https://github.com/peek/peek/pull/79","createdAt":"2015-10-13T00:46:43Z","labels":{"edges":[]}},{"id":"MDExOlB1bGxSZXF1ZXN0NTE0MTg4ODg=","title":"Update
- README.md","body":"Add maintenance note to readme\n","url":"https://github.com/vulume/Cordova-DBCamera/pull/1","createdAt":"2015-11-20T22:49:53Z","labels":{"edges":[]}},{"id":"MDExOlB1bGxSZXF1ZXN0NjkyNjE4Mjk=","title":"Add
- natural layer","body":"Adds the beginnings of a prose layer.\n\nReplaces #5403
- according to the discussion in #5996.\n","url":"https://github.com/syl20bnr/spacemacs/pull/6012","createdAt":"2016-05-08T06:24:38Z","labels":{"edges":[{"node":{"name":"New
- Layer"}}]}},{"id":"MDExOlB1bGxSZXF1ZXN0OTA4ODAzMzQ=","title":"Coercion type
- systems","body":"Introducing switchable type coercion systems for Hashie.
- Follows up on #239.\n\nAdds ''dry-types'' and ''activemodel'' alongside Hashie''s
- builtin coercion system. Basic usage is written up in the README.\n\nFor the
- most part, reading the source should be straight forward. The ''coercion''
- folder under ''extensions'' contains the implementation of the 3 coercion
- systems. The `Hashie::Extensions::Coercion` module was split into two files.
- The file itself contains the interface and common coercion methods, while
- the `Coercion::HashieTypes` class now contains the actual coercion implementation.\n\nThe
- only confusing part is the `CoercionSystemIncludeBuilder` defined under `Hashie::Extensions::Coercion`.
- The purpose of this class is to DRY up the included hooks for `Hashie::Extensions::Coercion`
- and `Hashie::Extensions::Dash::Coercion`. The common includes are defined
- once, and reused in the default `included` method and the `active_model` and
- `dry_types` methods on both the default and Dash coercion classes. The `active_model`
- and `dry_types` methods on `Hashie::Extensions::Coercion` and `Hashie::Extensions::Dash::Coercion`
- both return an anonymous module with an `included` method correctly defined,
- which then is immediately executed because it then included. \n\nExample:
- \n\n``` ruby\nmod = Hashie::Extensions::Coercion.dry_types\n# => \n\nmod.methods\n#=> [:included]\n\nclass MyHash < Hashie::Hash\n include
- mod\nend\n#=> Hashie::Extensions::Coercion::ClassMethods, Hashie::Extensions::Coercion::InstanceMethods,
- and Hashie::Extensions::Coercion::DryTypes are all mixed into MyHash\n```\n\nThis
- is 100% backwards compatible and all the tests pass. I did not add any additional
- tests - we should not need many as the new coercion systems are well tested
- in their own repos. We may want to add a few tests though.\n","url":"https://github.com/intridea/hashie/pull/379","createdAt":"2016-10-25T19:59:18Z","labels":{"edges":[{"node":{"name":"new
- feature"}}]}}]}}}}'
- http_version:
- recorded_at: Fri, 13 Sep 2019 19:58:07 GMT
-- request:
- method: post
- uri: https://api.segment.io/v1/import
- body:
- encoding: UTF-8
- string: '{"sentAt":"2019-09-16T18:30:52.685-04:00","batch":[{"userId":2673,"anonymousId":null,"integrations":null,"context":{"library":{"name":"analytics-ruby","version":"2.0.13"}},"traits":{},"options":null,"timestamp":"2019-09-16T18:30:52.685-04:00","type":"identify","messageId":"719b6dc5-c446-48ff-8f26-b60ea34bff97"}]}'
- headers:
- Content-Type:
- - application/json
- Accept:
- - application/json
- Accept-Encoding:
- - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
- User-Agent:
- - Ruby
- Authorization:
- - Basic NWw3czVyTVl0T3doWUNZMDBTcnIzMTYzWkZmR2N5ZVQ6
- response:
- status:
- code: 200
- message: OK
- headers:
- Date:
- - Mon, 16 Sep 2019 22:30:53 GMT
- Content-Type:
- - application/json
- Content-Length:
- - '21'
- Connection:
- - keep-alive
- Vary:
- - Origin
- body:
- encoding: UTF-8
- string: |-
- {
- "success": true
- }
- http_version:
- recorded_at: Mon, 16 Sep 2019 22:30:53 GMT
-recorded_with: VCR 5.0.0
diff --git a/spec/vcr/User/_incomplete/hacktoberfest_has_ended/transitions_user_to_incomplete.yml b/spec/vcr/User/_incomplete/hacktoberfest_has_ended/transitions_user_to_incomplete.yml
deleted file mode 100644
index 4ba8f8d30..000000000
--- a/spec/vcr/User/_incomplete/hacktoberfest_has_ended/transitions_user_to_incomplete.yml
+++ /dev/null
@@ -1,123 +0,0 @@
----
-http_interactions:
-- request:
- method: post
- uri: https://api.github.com/graphql
- body:
- encoding: UTF-8
- string: '{"query":"query($username:String!) {\n user(login: $username) {\n pullRequests(states:
- OPEN last: 100) {\n nodes {\n id\n title\n body\n url\n createdAt\n labels(first:
- 100) {\n edges {\n node {\n name\n }\n }\n }\n }\n }\n }\n}\n","variables":{"username":"mkcode"}}'
- headers:
- User-Agent:
- - Faraday v0.12.2
- Authorization:
- - bearer
- Content-Type:
- - application/json
- Accept-Encoding:
- - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
- Accept:
- - "*/*"
- response:
- status:
- code: 200
- message: OK
- headers:
- Server:
- - GitHub.com
- Date:
- - Fri, 13 Sep 2019 20:08:27 GMT
- Content-Type:
- - application/json; charset=utf-8
- Transfer-Encoding:
- - chunked
- Status:
- - 200 OK
- Cache-Control:
- - no-cache
- X-Oauth-Scopes:
- - user:email
- X-Accepted-Oauth-Scopes:
- - repo
- X-Github-Media-Type:
- - github.v4; format=json
- X-Ratelimit-Limit:
- - '5000'
- X-Ratelimit-Remaining:
- - '4939'
- X-Ratelimit-Reset:
- - '1568408901'
- Access-Control-Expose-Headers:
- - ETag, Link, Location, Retry-After, X-GitHub-OTP, X-RateLimit-Limit, X-RateLimit-Remaining,
- X-RateLimit-Reset, X-OAuth-Scopes, X-Accepted-OAuth-Scopes, X-Poll-Interval,
- X-GitHub-Media-Type
- Access-Control-Allow-Origin:
- - "*"
- Strict-Transport-Security:
- - max-age=31536000; includeSubdomains; preload
- X-Frame-Options:
- - deny
- X-Content-Type-Options:
- - nosniff
- X-Xss-Protection:
- - 1; mode=block
- Referrer-Policy:
- - origin-when-cross-origin, strict-origin-when-cross-origin
- Content-Security-Policy:
- - default-src 'none'
- X-Github-Request-Id:
- - '0489:2591:1F7D4F:566E45:5D7BF73A'
- body:
- encoding: ASCII-8BIT
- string: '{"data":{"user":{"pullRequests":{"nodes":[{"id":"MDExOlB1bGxSZXF1ZXN0NTc5MDc4Mg==","title":"Upgraded
- to rails 3.2 stable","body":"Hi, I''m using this app as template for a new
- project. Wanted to get on rails 3.2 stable before I started. Here it is!\n\nCheers\n","url":"https://github.com/maccman/spine.rails3/pull/6","createdAt":"2013-05-17T23:05:41Z","labels":{"edges":[]}},{"id":"MDExOlB1bGxSZXF1ZXN0NDcxMDUxNzU=","title":"Delete
- repos cleanup","body":"@PeterDaveHello - Thanks for your contribution. I''m
- using this work as an opportunity to clean up how we are doing testing in
- this app. I see that you basically copied the format from the create_repos
- spec - which was a good move.\n\nAfter reworking this so I can understand
- what is happening in https://github.com/education/teachers_pet/commit/be8a8b1ddb3a8ef79a88f53f6bd05649417f0515,
- I notice that we are not stubbing any repo deletion requests - which then
- therefore would mean that these tests aren''t actually sending any API requests.\n\n@PeterDaveHello
- - these tests should be hitting a delete repo endpoint on the GitHub API,
- should they not? Can we rework them so that they do? These tests should fail
- in the case the we comment out the `teachers_pet(:delete_repos)`... block.\n\n/cc
- @johndbritton \n","url":"https://github.com/education/teachers_pet/pull/126","createdAt":"2015-10-08T02:24:19Z","labels":{"edges":[]}},{"id":"MDExOlB1bGxSZXF1ZXN0NDc0Nzk5ODQ=","title":"Results
- by cookie","body":"Hi @deski - Following up on our discussion in #78 \n\nThis
- PR adds info from the peek cookie as discussed. It does not save Peek results
- unless the peek cookie is enabled. Always sets the cookie if peek is enabled.\n\nIn
- the case Peek was not enabled for a request, and is toggled on, `Peek::Views`
- with a `data-defer-to` are hidden and a refresh message is displayed: \n\n![screen
- shot 2015-10-12 at 8 41 31 pm](https://cloud.githubusercontent.com/assets/283496/10442611/22bb6a2e-7122-11e5-8fb3-c3fb5ed333b7.png)\n","url":"https://github.com/peek/peek/pull/79","createdAt":"2015-10-13T00:46:43Z","labels":{"edges":[]}},{"id":"MDExOlB1bGxSZXF1ZXN0NTE0MTg4ODg=","title":"Update
- README.md","body":"Add maintenance note to readme\n","url":"https://github.com/vulume/Cordova-DBCamera/pull/1","createdAt":"2015-11-20T22:49:53Z","labels":{"edges":[]}},{"id":"MDExOlB1bGxSZXF1ZXN0NjkyNjE4Mjk=","title":"Add
- natural layer","body":"Adds the beginnings of a prose layer.\n\nReplaces #5403
- according to the discussion in #5996.\n","url":"https://github.com/syl20bnr/spacemacs/pull/6012","createdAt":"2016-05-08T06:24:38Z","labels":{"edges":[{"node":{"name":"New
- Layer"}}]}},{"id":"MDExOlB1bGxSZXF1ZXN0OTA4ODAzMzQ=","title":"Coercion type
- systems","body":"Introducing switchable type coercion systems for Hashie.
- Follows up on #239.\n\nAdds ''dry-types'' and ''activemodel'' alongside Hashie''s
- builtin coercion system. Basic usage is written up in the README.\n\nFor the
- most part, reading the source should be straight forward. The ''coercion''
- folder under ''extensions'' contains the implementation of the 3 coercion
- systems. The `Hashie::Extensions::Coercion` module was split into two files.
- The file itself contains the interface and common coercion methods, while
- the `Coercion::HashieTypes` class now contains the actual coercion implementation.\n\nThe
- only confusing part is the `CoercionSystemIncludeBuilder` defined under `Hashie::Extensions::Coercion`.
- The purpose of this class is to DRY up the included hooks for `Hashie::Extensions::Coercion`
- and `Hashie::Extensions::Dash::Coercion`. The common includes are defined
- once, and reused in the default `included` method and the `active_model` and
- `dry_types` methods on both the default and Dash coercion classes. The `active_model`
- and `dry_types` methods on `Hashie::Extensions::Coercion` and `Hashie::Extensions::Dash::Coercion`
- both return an anonymous module with an `included` method correctly defined,
- which then is immediately executed because it then included. \n\nExample:
- \n\n``` ruby\nmod = Hashie::Extensions::Coercion.dry_types\n# => \n\nmod.methods\n#=> [:included]\n\nclass MyHash < Hashie::Hash\n include
- mod\nend\n#=> Hashie::Extensions::Coercion::ClassMethods, Hashie::Extensions::Coercion::InstanceMethods,
- and Hashie::Extensions::Coercion::DryTypes are all mixed into MyHash\n```\n\nThis
- is 100% backwards compatible and all the tests pass. I did not add any additional
- tests - we should not need many as the new coercion systems are well tested
- in their own repos. We may want to add a few tests though.\n","url":"https://github.com/intridea/hashie/pull/379","createdAt":"2016-10-25T19:59:18Z","labels":{"edges":[{"node":{"name":"new
- feature"}}]}}]}}}}'
- http_version:
- recorded_at: Fri, 13 Sep 2019 20:08:27 GMT
-recorded_with: VCR 5.0.0
diff --git a/spec/vcr/User/_incomplete/hacktoberfest_has_ended/user_has_insufficient_eligible_prs/persists_the_incompleted_state.yml b/spec/vcr/User/_incomplete/hacktoberfest_has_ended/user_has_insufficient_eligible_prs/persists_the_incompleted_state.yml
deleted file mode 100644
index 7c5a93398..000000000
--- a/spec/vcr/User/_incomplete/hacktoberfest_has_ended/user_has_insufficient_eligible_prs/persists_the_incompleted_state.yml
+++ /dev/null
@@ -1,80 +0,0 @@
----
-http_interactions:
-- request:
- method: post
- uri: https://api.github.com/graphql
- body:
- encoding: UTF-8
- string: '{"query":"query($username:String!) {\n user(login: $username) {\n pullRequests(states:
- [OPEN, MERGED, CLOSED] last: 100) {\n nodes {\n id\n title\n body\n url\n createdAt\n repository{\n databaseId\n }\n labels(first:
- 100) {\n edges {\n node {\n name\n }\n }\n }\n }\n }\n }\n}\n","variables":{"username":"Testerson
- McTest"}}'
- headers:
- User-Agent:
- - Faraday v0.15.4
- Authorization:
- - bearer
- Content-Type:
- - application/json
- Accept-Encoding:
- - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
- Accept:
- - "*/*"
- response:
- status:
- code: 200
- message: OK
- headers:
- Date:
- - Mon, 30 Sep 2019 16:53:18 GMT
- Content-Type:
- - application/json; charset=utf-8
- Transfer-Encoding:
- - chunked
- Server:
- - GitHub.com
- Status:
- - 200 OK
- Cache-Control:
- - no-cache
- X-Oauth-Scopes:
- - admin:public_key
- X-Accepted-Oauth-Scopes:
- - repo
- X-Github-Media-Type:
- - github.v4; format=json
- X-Ratelimit-Limit:
- - '5000'
- X-Ratelimit-Remaining:
- - '4930'
- X-Ratelimit-Reset:
- - '1569865998'
- Access-Control-Expose-Headers:
- - ETag, Link, Location, Retry-After, X-GitHub-OTP, X-RateLimit-Limit, X-RateLimit-Remaining,
- X-RateLimit-Reset, X-OAuth-Scopes, X-Accepted-OAuth-Scopes, X-Poll-Interval,
- X-GitHub-Media-Type
- Access-Control-Allow-Origin:
- - "*"
- Strict-Transport-Security:
- - max-age=31536000; includeSubdomains; preload
- X-Frame-Options:
- - deny
- X-Content-Type-Options:
- - nosniff
- X-Xss-Protection:
- - 1; mode=block
- Referrer-Policy:
- - origin-when-cross-origin, strict-origin-when-cross-origin
- Content-Security-Policy:
- - default-src 'none'
- Vary:
- - Accept-Encoding
- X-Github-Request-Id:
- - C1E6:6022:3B0F7A:6B4736:5D9232FE
- body:
- encoding: ASCII-8BIT
- string: '{"data":{"user":null},"errors":[{"type":"NOT_FOUND","path":["user"],"locations":[{"line":2,"column":3}],"message":"Could
- not resolve to a User with the login of ''Testerson McTest''."}]}'
- http_version:
- recorded_at: Mon, 30 Sep 2019 16:53:18 GMT
-recorded_with: VCR 5.0.0
diff --git a/spec/vcr/User/_incomplete/hacktoberfest_has_ended/user_has_insufficient_eligible_prs/transitions_the_user_to_the_incomplete_state.yml b/spec/vcr/User/_incomplete/hacktoberfest_has_ended/user_has_insufficient_eligible_prs/transitions_the_user_to_the_incomplete_state.yml
deleted file mode 100644
index b33ac51a8..000000000
--- a/spec/vcr/User/_incomplete/hacktoberfest_has_ended/user_has_insufficient_eligible_prs/transitions_the_user_to_the_incomplete_state.yml
+++ /dev/null
@@ -1,80 +0,0 @@
----
-http_interactions:
-- request:
- method: post
- uri: https://api.github.com/graphql
- body:
- encoding: UTF-8
- string: '{"query":"query($username:String!) {\n user(login: $username) {\n pullRequests(states:
- [OPEN, MERGED, CLOSED] last: 100) {\n nodes {\n id\n title\n body\n url\n createdAt\n repository{\n databaseId\n }\n labels(first:
- 100) {\n edges {\n node {\n name\n }\n }\n }\n }\n }\n }\n}\n","variables":{"username":"Testerson
- McTest"}}'
- headers:
- User-Agent:
- - Faraday v0.15.4
- Authorization:
- - bearer
- Content-Type:
- - application/json
- Accept-Encoding:
- - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
- Accept:
- - "*/*"
- response:
- status:
- code: 200
- message: OK
- headers:
- Date:
- - Mon, 30 Sep 2019 16:53:18 GMT
- Content-Type:
- - application/json; charset=utf-8
- Transfer-Encoding:
- - chunked
- Server:
- - GitHub.com
- Status:
- - 200 OK
- Cache-Control:
- - no-cache
- X-Oauth-Scopes:
- - admin:public_key
- X-Accepted-Oauth-Scopes:
- - repo
- X-Github-Media-Type:
- - github.v4; format=json
- X-Ratelimit-Limit:
- - '5000'
- X-Ratelimit-Remaining:
- - '4931'
- X-Ratelimit-Reset:
- - '1569865998'
- Access-Control-Expose-Headers:
- - ETag, Link, Location, Retry-After, X-GitHub-OTP, X-RateLimit-Limit, X-RateLimit-Remaining,
- X-RateLimit-Reset, X-OAuth-Scopes, X-Accepted-OAuth-Scopes, X-Poll-Interval,
- X-GitHub-Media-Type
- Access-Control-Allow-Origin:
- - "*"
- Strict-Transport-Security:
- - max-age=31536000; includeSubdomains; preload
- X-Frame-Options:
- - deny
- X-Content-Type-Options:
- - nosniff
- X-Xss-Protection:
- - 1; mode=block
- Referrer-Policy:
- - origin-when-cross-origin, strict-origin-when-cross-origin
- Content-Security-Policy:
- - default-src 'none'
- Vary:
- - Accept-Encoding
- X-Github-Request-Id:
- - C1E5:4113:32CB4B:632C10:5D9232FE
- body:
- encoding: ASCII-8BIT
- string: '{"data":{"user":null},"errors":[{"type":"NOT_FOUND","path":["user"],"locations":[{"line":2,"column":3}],"message":"Could
- not resolve to a User with the login of ''Testerson McTest''."}]}'
- http_version:
- recorded_at: Mon, 30 Sep 2019 16:53:18 GMT
-recorded_with: VCR 5.0.0
diff --git a/spec/vcr/User/_incomplete/hacktoberfest_has_not_yet_ended/adds_the_correct_errors_to_the_user.yml b/spec/vcr/User/_incomplete/hacktoberfest_has_not_yet_ended/adds_the_correct_errors_to_the_user.yml
deleted file mode 100644
index ccf87c964..000000000
--- a/spec/vcr/User/_incomplete/hacktoberfest_has_not_yet_ended/adds_the_correct_errors_to_the_user.yml
+++ /dev/null
@@ -1,156 +0,0 @@
----
-http_interactions:
-- request:
- method: post
- uri: https://api.github.com/graphql
- body:
- encoding: UTF-8
- string: '{"query":"query($nodeId:ID!){\n node(id:$nodeId) {\n ... on User
- {\n pullRequests(states: [OPEN, MERGED, CLOSED] last: 100) {\n nodes
- {\n id\n title\n body\n url\n createdAt\n repository{\n databaseId\n }\n labels(first:
- 100) {\n edges {\n node {\n name\n }\n }\n }\n }\n }\n }\n }\n}\n","variables":{"nodeId":"MDQ6VXNlcjEyNTk3MA=="}}'
- headers:
- User-Agent:
- - Faraday v0.15.4
- Authorization:
- - bearer
- Content-Type:
- - application/json
- Accept-Encoding:
- - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
- Accept:
- - "*/*"
- response:
- status:
- code: 200
- message: OK
- headers:
- Server:
- - GitHub.com
- Date:
- - Wed, 02 Oct 2019 02:58:58 GMT
- Content-Type:
- - application/json; charset=utf-8
- Transfer-Encoding:
- - chunked
- Status:
- - 200 OK
- Cache-Control:
- - no-cache
- X-Oauth-Scopes:
- - ''
- X-Accepted-Oauth-Scopes:
- - repo
- X-Github-Media-Type:
- - github.v4; format=json
- X-Ratelimit-Limit:
- - '5000'
- X-Ratelimit-Remaining:
- - '4998'
- X-Ratelimit-Reset:
- - '1569988079'
- Access-Control-Expose-Headers:
- - ETag, Link, Location, Retry-After, X-GitHub-OTP, X-RateLimit-Limit, X-RateLimit-Remaining,
- X-RateLimit-Reset, X-OAuth-Scopes, X-Accepted-OAuth-Scopes, X-Poll-Interval,
- X-GitHub-Media-Type
- Access-Control-Allow-Origin:
- - "*"
- Strict-Transport-Security:
- - max-age=31536000; includeSubdomains; preload
- X-Frame-Options:
- - deny
- X-Content-Type-Options:
- - nosniff
- X-Xss-Protection:
- - 1; mode=block
- Referrer-Policy:
- - origin-when-cross-origin, strict-origin-when-cross-origin
- Content-Security-Policy:
- - default-src 'none'
- X-Github-Request-Id:
- - DE64:6E96:7DA54:E5B62:5D941271
- body:
- encoding: ASCII-8BIT
- string: !binary |-
- eyJkYXRhIjp7Im5vZGUiOnsicHVsbFJlcXVlc3RzIjp7Im5vZGVzIjpbeyJpZCI6Ik1ERXhPbEIxYkd4U1pYRjFaWE4wTmpjMU5Ea3dOUT09IiwidGl0bGUiOiJDaGFuZ2VkIEBpbXBvcnQgdG8gPGxpbms+IHRhZ3MiLCJib2R5IjoiVGhpcyBpcyB0byBmaXggYSBkb2N1bWVudGF0aW9uIGJ1ZyBsaXN0ZWQgaW4gdGhlIGJ1Z3MgbGlzdCBhcyAjMzkuIFxuXG5JbiBjb2RlIGV4YW1wbGVzLCBJIGNoYW5nZWQgY3NzIEBpbXBvcnQgdG8gPGxpbms+IHRhZ3MgdG8gZml4IHRoZSA0MDRzIG9uIHRob3NlIENTUyBmaWxlcy4gVGhpcyBzZWVtcyB0byBoYXZlIGJlZW4gZG9uZSBhdCBkb2pveC93aWRnZXQvVG9hc3Rlci5yc3QgYW5kIHRoZSB0aGVtaW5nIHdvcmtzIGZpbmUgdGhlcmUuXG5cblBsZWFzZSBub3RlIEkgd2FzIG5vdCBhYmxlIHRvIHRlc3QgaXQgYXMgSSBkb24ndCBoYXZlIGEgbG9jYWwgcnN0IHRlc3QgZW52LiBzZXR1cCBhcyB5ZXQuIChUaGlzIGlzIG15IGZpcnN0IGRvam8gY29tbWl0ISlcbiIsInVybCI6Imh0dHBzOi8vZ2l0aHViLmNvbS9kb2pvL2RvY3MvcHVsbC84OSIsImNyZWF0ZWRBdCI6IjIwMTMtMDctMDVUMTk6MTM6NThaIiwicmVwb3NpdG9yeSI6eyJkYXRhYmFzZUlkIjoyODE0NDU4fSwibGFiZWxzIjp7ImVkZ2VzIjpbXX19LHsiaWQiOiJNREV4T2xCMWJHeFNaWEYxWlhOME5qYzFPVFUwTVE9PSIsInRpdGxlIjoiUmVwbGFjZWQgPGxpbms+IHRhZyB3aXRoIEBpbXBvcnQgZm9yIGZhaWxpbmcgZXhhbXBsZXMiLCJib2R5IjoiVGhpcyBpcyB0byBmaXggdGhlIEBpbXBvcnQgaXNzdWUgZm9yIENTUyBmaWxlcyBhbmQgaXQgY29uY2VybnMgb25seSB0aGUgZmlyc3QgNyBvZiB0aGUgMTIgZXhhbXBsZXMgb24gdGhlIHBhZ2UuIExhdHRlciA1IHdvcmsgZmluZSAoYXMgdGhleSBkb24ndCB1c2UgZXhwbGljaXQgc3R5bGluZykuXG5cbkZvciB0aGlzIGZpeCwgSSBwdXQgdGhlIEBpbXBvcnQgYmFjayBpbiBmb3IgPGxpbms+IHRhZ3Mgd2hlcmUgYW4gZXhwbGljaXQgQ1NTIHN0eWxpbmcgaXMgcmVxdWlyZWQsIGUuZy4gI2dyaWREaXZ7aGVpZ2h0OjIwZW07fS4gSSBoYXZlIGFsc28gcmVwbGFjZWQgYmFzZVVybCB3aXRoIGRhdGFVcmwgaW4gY3VybHkgYnJhY2tldHMsIGhvd2V2ZXIgSSBoYWQgbm8gd2F5IHRvIHRlc3QgaXQgbG9jYWxseS4gSWYgdGhpcyBmaXggY2FuIG5vdCByZXNvbHZlIHRoZSBpc3N1ZSwgSSBuZWVkIGhlbHAvaWRlYXMhXG5cbihJIHNldHVwIHJzdHdpa2kgbG9jYWxseSwgYnV0IGl0IGRvZXNuJ3QgYWxsb3cgcnVubmluZyBleGFtcGxlcyBsaWtlIGl0IGlzIG9uIHRoZSB3ZWJzaXRlLCBzbyBjYW4ndCB0ZXN0IGl0LiBJcyB0aGlzIG5vcm1hbCBvciBpcyBteSByc3R3aWtpIHNldHVwIGluY29ycmVjdD8pXG4iLCJ1cmwiOiJodHRwczovL2dpdGh1Yi5jb20vZG9qby9kb2NzL3B1bGwvOTAiLCJjcmVhdGVkQXQiOiIyMDEzLTA3LTA2VDAzOjI3OjE5WiIsInJlcG9zaXRvcnkiOnsiZGF0YWJhc2VJZCI6MjgxNDQ1OH0sImxhYmVscyI6eyJlZGdlcyI6W119fSx7ImlkIjoiTURFeE9sQjFiR3hTWlhGMVpYTjBPRFk0TURnek1nPT0iLCJ0aXRsZSI6IltjbGFdIFJlOjE3NDY4IHVwZGF0ZSBpbiBzb3VyY2UgY29tbWVudHMgYW5kIGV4YW1wbGVzIHRvIEFNRCBzeW50YXgiLCJib2R5IjoiVXBkYXRpbmcgdGhlIGV4YW1wbGUgZm9yIGFkZE9uVW5sb2FkLiBXaWxsIGRvIHRoZSBvdGhlciBleGFtcGxlcyBpbiB0aGlzIG1vZHVsZSwgbmV4dC5cbiIsInVybCI6Imh0dHBzOi8vZ2l0aHViLmNvbS9kb2pvL2Rvam8vcHVsbC8yOCIsImNyZWF0ZWRBdCI6IjIwMTMtMDktMjhUMDI6MDE6NDhaIiwicmVwb3NpdG9yeSI6eyJkYXRhYmFzZUlkIjoxMDE2MDUyOH0sImxhYmVscyI6eyJlZGdlcyI6W119fSx7ImlkIjoiTURFeE9sQjFiR3hTWlhGMVpYTjBPRGM1TkRjMk1RPT0iLCJ0aXRsZSI6IltjbGFdIFVwZGF0aW5nIHRoZSBleGFtcGxlcyBmb3IgYWRkT25VbmxvYWQgYW5kIGFkZFdpbmRvd1VubG9hZCB0byBBTUQgc3ludGF4LiIsImJvZHkiOiJDbGFyaWZpZWQgdGhlIGV4YW1wbGUgZm9yIGFkZFVubG9hZC4gQ29udmVydGVkIGFkZFdpbmRvd1VubG9hZCBleGFtcGxlIHRvIEFNRCBzeW50YXguIFJlZnMgIzE3NDY4XG4iLCJ1cmwiOiJodHRwczovL2dpdGh1Yi5jb20vZG9qby9kb2pvL3B1bGwvMzEiLCJjcmVhdGVkQXQiOiIyMDEzLTEwLTAzVDAxOjA4OjI3WiIsInJlcG9zaXRvcnkiOnsiZGF0YWJhc2VJZCI6MTAxNjA1Mjh9LCJsYWJlbHMiOnsiZWRnZXMiOltdfX0seyJpZCI6Ik1ERXhPbEIxYkd4U1pYRjFaWE4wT0RjNU5EYzJOUT09IiwidGl0bGUiOiJbY2xhXSBVcGRhdGluZyB0aGUgZXhhbXBsZXMgdG8gQU1EIHN5bnRheC4iLCJib2R5IjoiUmVmcyAjMTc0NjhcbiIsInVybCI6Imh0dHBzOi8vZ2l0aHViLmNvbS9kb2pvL2Rvam8vcHVsbC8zMiIsImNyZWF0ZWRBdCI6IjIwMTMtMTAtMDNUMDE6MDg6NDZaIiwicmVwb3NpdG9yeSI6eyJkYXRhYmFzZUlkIjoxMDE2MDUyOH0sImxhYmVscyI6eyJlZGdlcyI6W119fSx7ImlkIjoiTURFeE9sQjFiR3hTWlhGMVpYTjBNVEkxT0Rnd09ETT0iLCJ0aXRsZSI6ImRhdGUuanMgaW50ZXJuIGNvbnZlcnNpb24iLCJib2R5IjoibW9zdGx5IDEtMSBjb252ZXJzaW9uIGZyb20gZG9oJ3MgZGF0ZS5qcy4gaSd2ZSBvbmx5IHRpZGllZCB1cCBpbiBpbnRlcm4gc3VpdGVzIGFuZCBwdXQgaW4gbmV3ZXIgZGF0ZXMuXG5cbmkgd2Fzbid0IHN1cmUgYWJvdXQga2VlcGluZyBnZXRUaW1lem9uZU5hbWUgY29udGVudCBhcyBpdCBpcyAoaWUuIHRlc3Rpbmcgb24gZGlmZmVyZW50IGJyb3dzZXIvb3MpLi4uIGkgbGVmdCBzbyBpbiB0aGUgZW5kIGFzIGRldGVjdGluZyB0aGUgdGVzdGVyJ3MgY2hvc2VuIGJyb3dzZXIvb3MgYW5kIHRoZW4gY2FsY3VsYXRpbmcgVFogaXMgYmFzaWNhbGx5IGRvaW5nIHRoZSBzYW1lIHRoaW5nIHRoZSBhY3R1YWwgbWV0aG9kIGRvZXMuLi4gaG93ZXZlciwgaWYgd2UgYXJlIHRvIGtlZXAgdGhlIGJyb3dzZXIvb3MgYXNzZXJ0cyBhcyB0aGV5IGFyZSwgd2UgYmV0dGVyIHB1dCAgIGRhdGEgZnJvbSBuZXdlciBicm93c2VyL29zIHZlcnNpb25zLi4uXG4iLCJ1cmwiOiJodHRwczovL2dpdGh1Yi5jb20vYnJ5YW5mb3JiZXMvZG9qby9wdWxsLzE0IiwiY3JlYXRlZEF0IjoiMjAxNC0wMi0xNlQwMDo0OTowOFoiLCJyZXBvc2l0b3J5Ijp7ImRhdGFiYXNlSWQiOjEwMTY0MjY0fSwibGFiZWxzIjp7ImVkZ2VzIjpbXX19LHsiaWQiOiJNREV4T2xCMWJHeFNaWEYxWlhOME1UWTFOVFl6TlRJPSIsInRpdGxlIjoiVXBkYXRlIHNlcnZlci5qcyIsImJvZHkiOiInYm9keS1wYXJzZXInIGV4dHJhY3RlZCBvdXQgb2YgZXhwcmVzcy5cbiIsInVybCI6Imh0dHBzOi8vZ2l0aHViLmNvbS9wZXRlaHVudC9yZWFjdC10dXRvcmlhbC9wdWxsLzE0IiwiY3JlYXRlZEF0IjoiMjAxNC0wNS0zMFQyMTozNDo0OFoiLCJyZXBvc2l0b3J5Ijp7ImRhdGFiYXNlSWQiOjEwMzc1NjUzfSwibGFiZWxzIjp7ImVkZ2VzIjpbXX19LHsiaWQiOiJNREV4T2xCMWJHeFNaWEYxWlhOME1UY3pOakl5TWpRPSIsInRpdGxlIjoiZG9qby9EZWZlcnJlZCB0ZXN0cyIsImJvZHkiOiI0IHRlc3RjYXNlcyBmYWlsIGluIGRvam8vRGVmZXJyZWQgdGVzdGNhc2VzKGZvciB0aGUgc2FtZSByZWFzb24pLCBhbmQgdGhlcmUgaXMgMSBpbmNvcmVjdCBqc2hpbnQgZmFpbHVyZS4gSSBtYXJrZWQgdGhlbSB3aXRoIEZBSUwgaW4gY29tbWVudHMuXG4iLCJ1cmwiOiJodHRwczovL2dpdGh1Yi5jb20vYnJ5YW5mb3JiZXMvZG9qby9wdWxsLzMyIiwiY3JlYXRlZEF0IjoiMjAxNC0wNi0xOVQxNjo0ODo0OFoiLCJyZXBvc2l0b3J5Ijp7ImRhdGFiYXNlSWQiOjEwMTY0MjY0fSwibGFiZWxzIjp7ImVkZ2VzIjpbXX19LHsiaWQiOiJNREV4T2xCMWJHeFNaWEYxWlhOME9EUXdNVGd5TWpJPSIsInRpdGxlIjoiUmVtb3ZlIHBlZXJEZXBlbmRlbmNpZXMgaW4gcGFja2FnZS5qc29uIHRvIHVuYmxvY2sgdXNhZ2Ugd2l0aCBSZWFjdCAxNSIsImJvZHkiOiIiLCJ1cmwiOiJodHRwczovL2dpdGh1Yi5jb20vaGFydW5oYXNkYWwvcmVhY3QteGhyLXVwbG9hZGVyL3B1bGwvMSIsImNyZWF0ZWRBdCI6IjIwMTYtMDktMDVUMTU6MzQ6MzZaIiwicmVwb3NpdG9yeSI6eyJkYXRhYmFzZUlkIjo1MDg0NTgzOX0sImxhYmVscyI6eyJlZGdlcyI6W119fSx7ImlkIjoiTURFeE9sQjFiR3hTWlhGMVpYTjBPRFUxT0RVd01qTT0iLCJ0aXRsZSI6IlVwZ3JhZGUgcGFja2FnZXMiLCJib2R5IjoiIiwidXJsIjoiaHR0cHM6Ly9naXRodWIuY29tL2hhcnVuaGFzZGFsL3JlYWN0LXhoci11cGxvYWRlci9wdWxsLzIiLCJjcmVhdGVkQXQiOiIyMDE2LTA5LTE2VDE0OjQxOjE1WiIsInJlcG9zaXRvcnkiOnsiZGF0YWJhc2VJZCI6NTA4NDU4Mzl9LCJsYWJlbHMiOnsiZWRnZXMiOltdfX0seyJpZCI6Ik1ERXhPbEIxYkd4U1pYRjFaWE4wT0RVNE1ESTNOamM9IiwidGl0bGUiOiJTdHlsZSBvdmVycmlkZSBlbmhhbmNlbWVudCBhbmQgYSBidWcgZml4LiIsImJvZHkiOiIxLiBFbmhhbmNlbWVudCBmb3IgaW5saW5lIHN0eWxlIG92ZXJyaWRlczogTm93IGFuIGluZGl2aWR1YWwgaW5saW5lIHPigKZ0eWxlIGNhbiBiZSBvdmVycmlkZGVuLCBzbyB0aGUgZGV2ZWxvcGVyIGRvZXMgbm90IG5lZWQgdG8gZm9ybSB0aGUgZW50aXJlIHN0eWxlcyBvYmplY3QuXG4yLiBGaXhlZCAnY2xpY2snIHByb3BhZ2F0aW9uIGJ1ZyBvbiB0aGUgJ2Nsb3NlJyBidXR0b24gb2YgdXBsb2FkZXIgYmFyLlxuIiwidXJsIjoiaHR0cHM6Ly9naXRodWIuY29tL2hhcnVuaGFzZGFsL3JlYWN0LXhoci11cGxvYWRlci9wdWxsLzMiLCJjcmVhdGVkQXQiOiIyMDE2LTA5LTE5VDE0OjIyOjQ5WiIsInJlcG9zaXRvcnkiOnsiZGF0YWJhc2VJZCI6NTA4NDU4Mzl9LCJsYWJlbHMiOnsiZWRnZXMiOltdfX0seyJpZCI6Ik1ERXhPbEIxYkd4U1pYRjFaWE4wT0Rrd01UZ3lNakE9IiwidGl0bGUiOiJSZW1vdmVkIGtvYSwgaGFwaTsgYnVtcGVkIHBhY2thZ2UgdmVyc2lvbnM7IHJlc3RydWN0dXJlZCBleGFtcGxlLiIsImJvZHkiOiIiLCJ1cmwiOiJodHRwczovL2dpdGh1Yi5jb20vY2VsaWttdXMvZ3JhZmZpdGkvcHVsbC8xIiwiY3JlYXRlZEF0IjoiMjAxNi0xMC0xMlQxMzo0MjozN1oiLCJyZXBvc2l0b3J5Ijp7ImRhdGFiYXNlSWQiOjcwNjg5MDM0fSwibGFiZWxzIjp7ImVkZ2VzIjpbXX19LHsiaWQiOiJNREV4T2xCMWJHeFNaWEYxWlhOME1UTTJORFEyTmprNSIsInRpdGxlIjoiVXBncmFkZWQgdG8gRXhwbyBTREsgMTkuMCBhbmQgcmFuIHByZXR0aWVyIG9uIGpzIG1vZHVsZXMiLCJib2R5IjoiIiwidXJsIjoiaHR0cHM6Ly9naXRodWIuY29tL2dnb21hZW5nL3JlYWN0LW5hdGl2ZS1zdmctY2hpY2tlbi9wdWxsLzIiLCJjcmVhdGVkQXQiOiIyMDE3LTA4LTE4VDEwOjE4OjM1WiIsInJlcG9zaXRvcnkiOnsiZGF0YWJhc2VJZCI6NzcyOTcyMTV9LCJsYWJlbHMiOnsiZWRnZXMiOltdfX0seyJpZCI6Ik1ERXhPbEIxYkd4U1pYRjFaWE4wTVRRek1EWTVPVEl4IiwidGl0bGUiOiJSZWZhY3RvcmluZyB0byByZXBsYWNlIGluaGVyaXRhbmNlIHdpdGggY29tcG9zYWJsZSBmdW5jdGlvbnMiLCJib2R5IjoiQmVpbmcgcmVwbGFjZWQgd2l0aDogaHR0cHM6Ly9naXRodWIuY29tL0FkYXB0aXZlQ29uc3VsdGluZy9SZWFjdGl2ZVRyYWRlckNsb3VkL3B1bGwvNjI3XHJcblxyXG5JIHRpZGllZCB1cCBhcHBCb290c3RyYXBwZXIgYW5kIHNlcnZpY2VzIHRvIG1vdmUgYXdheSBmcm9tIGluaGVyaXRhbmNlIGZyb20gU2VydmljZUJhc2UgYW5kIERpc3Bvc2FibGVCYXNlLi4uIFdlIGRvbid0IHJlYWxseSBuZWVkIGluaGVyaXRhbmNlIGZvciB0aG9zZSwgYW5kIHRoZSBjb2RlIGZsb3dzIGVhc2llciBhcyBmdW5jdGlvbnMuIEFzIFNlcnZpY2VCYXNlIGlzIG5vdCB1c2VkIGFueW1vcmUsIEkgaGF2ZSByZW1vdmVkIGl0IGFsdG9nZXRoZXIuXHJcblxyXG5XaGlsZSBJIHJlbW92ZWQgaW5oZXJpdGFuY2UsIHdlIHN0aWxsIHVzZSBTZXJ2aWNlQ2xpZW50IGJ5IGluc3RhbnRpYXRpbmcgaW4gZmFjdG9yeSBmdW5jdGlvbnMuIFRoaXMgbWVhbnMgSSBoYXZlbid0IGFsdGVyZWQgYW55IFJ4IGJlaGF2aW91ciwgaW4gZmFjdCBubyBiZWhhdmlvdXIgYXQgYWxsLiBJIGhhdmUgZml4ZWQgdGhlIGltcGFjdGVkIHRlc3RjYXNlcywgd2hpbGUgdGhlcmUgYXJlIHNvbWUgZXhpc3RpbmcgZmFpbGluZyB0ZXN0cyBmb3IgU2VydmljZUNsaWVudC4uLiBJIGFtIHBsYW5uaW5nIHRvIHRhY2tsZSB3aXRoIFNlcnZpY2VDbGllbnQgbmV4dCwgYW5kIEkgd2lsbCB0YWNrbGUgdGhvc2UgdGhlcmUuLi5cclxuXHJcbkkgdXNlZCBwcmV0dGllciBvbiB0aGUgZmlsZXMgdGhhdCBJIHdvcmtlZCBvbi4uLiBJIGhhdmUgYWxzbyB0YWtlbiBvdXQgc29tZSB0c0xpbnQgcnVsZXM7IHdoaWNoIHJlZHVjZWQgbWFqb3JpdHkgb2YgdGhlIHByZS1leGlzdGluZyB0c0xpbnQgZXJyb3JzLlxyXG4iLCJ1cmwiOiJodHRwczovL2dpdGh1Yi5jb20vQWRhcHRpdmVDb25zdWx0aW5nL1JlYWN0aXZlVHJhZGVyQ2xvdWQvcHVsbC82MDQiLCJjcmVhdGVkQXQiOiIyMDE3LTA5LTI2VDA4OjM1OjU0WiIsInJlcG9zaXRvcnkiOnsiZGF0YWJhc2VJZCI6NDYxNDI0MDF9LCJsYWJlbHMiOnsiZWRnZXMiOltdfX1dfX19fQ==
- http_version:
- recorded_at: Wed, 02 Oct 2019 02:58:58 GMT
-- request:
- method: get
- uri: https://api.airtable.com/v0/app64BSrmnmi11kBF/Spam%20Repos
- body:
- encoding: US-ASCII
- string: ''
- headers:
- Authorization:
- - Bearer keyXZo7XVNxc3qFVT
- User-Agent:
- - Airrecord/1.0.2
- X-Api-Version:
- - 0.1.0
- Accept-Encoding:
- - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
- Accept:
- - "*/*"
- Connection:
- - keep-alive
- Keep-Alive:
- - '30'
- response:
- status:
- code: 200
- message: OK
- headers:
- Access-Control-Allow-Headers:
- - authorization,content-length,content-type,user-agent,x-airtable-application-id,x-airtable-user-agent,x-api-version,x-requested-with
- Access-Control-Allow-Methods:
- - DELETE,GET,OPTIONS,PATCH,POST,PUT
- Access-Control-Allow-Origin:
- - "*"
- Content-Type:
- - application/json; charset=utf-8
- Date:
- - Wed, 02 Oct 2019 02:58:58 GMT
- Etag:
- - W/"e99-pxJwTfxCMKSdoZnS/z/RGkQ6FCY"
- Server:
- - Tengine
- Set-Cookie:
- - brw=brwTkDMX35G3HIndT; path=/; expires=Fri, 02 Oct 2020 02:58:58 GMT; domain=.airtable.com;
- secure; httponly
- Strict-Transport-Security:
- - max-age=31536000; includeSubDomains; preload
- Vary:
- - Accept-Encoding
- Content-Length:
- - '1092'
- Connection:
- - keep-alive
- body:
- encoding: ASCII-8BIT
- string: '{"records":[{"id":"rec3Hnfb6Z4OoybiR","fields":{"Repo Link":"https://github.com/Cutwell/Hacktoberfest-Census","Repo
- ID":"106163054","Verified?":true},"createdTime":"2019-10-01T10:05:23.000Z"},{"id":"rec3IZTClm6OGUogE","fields":{"Repo
- Link":"https://github.com/Nguyen17/Hacktoberfest-Sign-In","Repo ID":"105499173","Verified?":true},"createdTime":"2019-10-01T10:06:44.000Z"},{"id":"rec3KuulgZm9r5c6W","fields":{"Repo
- ID":"152433556","Repo Link":"https://github.com/Dhroov7/Hacktoberfest2019","Verified?":true,"Second
- Review?":true,"Notes":"Reviewed by Daniel. https://hacktoberfest.freshdesk.com/a/tickets/4629"},"createdTime":"2019-09-03T17:49:21.000Z"},{"id":"rec5W89OYEOg1sXB1","fields":{"Repo
- ID":"105825987","Repo Link":"https://github.com/AliceWonderland/hacktoberfest","Verified?":true},"createdTime":"2019-09-03T17:49:21.000Z"},{"id":"recEdu362KvpSIvD1","fields":{"Repo
- Link":"\nhttps://github.com/RaidAndFade/Hacktoberfest2019\n","Repo ID":"211575994","Verified?":true,"Second
- Review?":true,"Notes":"Reviewed by entire team. https://hacktoberfest.freshdesk.com/a/tickets/4632"},"createdTime":"2019-10-01T08:23:50.000Z"},{"id":"recExpfHP9MxiAkbW","fields":{"Repo
- Link":"https://github.com/FossMec/Hacktoberfest2019-coming-soon-","Repo ID":"152772686","Verified?":true},"createdTime":"2019-10-01T10:01:45.000Z"},{"id":"recF4hXnh3eVSnPmQ","fields":{"Repo
- Link":"https://github.com/NiklasSchmitt/hacktoberfest","Repo ID":"151842708","Verified?":true},"createdTime":"2019-10-01T15:57:46.000Z"},{"id":"recInq09uZO9JR8Fe","fields":{"Repo
- ID":"211832378","Repo Link":"https://github.com/vJechsmayr/hacktoberfest2019","Verified?":true},"createdTime":"2019-10-01T09:57:35.000Z"},{"id":"recMMSta6MlivFtHp","fields":{"Repo
- Link":"https://github.com/nerds-amp-mods/stupid-functions","Repo ID":"211840371","Verified?":true},"createdTime":"2019-10-01T13:42:39.000Z"},{"id":"recMSDhlGDMzVAbXS","fields":{"Repo
- ID":"211158925","Repo Link":"https://github.com/bolorundurovj/Hacktoberfest_SignIn_2019","Verified?":true},"createdTime":"2019-09-30T19:33:04.000Z"},{"id":"recTn52jTKxNchDIT","fields":{"Repo
- ID":"206600482","Repo Link":"https://github.com/ambujraj/hacktoberfest2019","Verified?":true},"createdTime":"2019-09-30T19:32:26.000Z"},{"id":"recbETD5bMKVvIBep","fields":{"Repo
- Link":"https://github.com/girisagar46/hacktoberfest2019","Repo ID":"211886057","Verified?":true},"createdTime":"2019-10-01T18:53:03.000Z"},{"id":"reciYfGNJEYf6kKsy","fields":{"Repo
- Link":"https://github.com/alexendrios/hacktoberfest-2019","Repo ID":"152166854","Verified?":true},"createdTime":"2019-10-01T13:47:27.000Z"},{"id":"recmgdtpI6IWXaeTw","fields":{"Repo
- ID":"127184470","Repo Link":"https://github.com/ambujraj/hacktoberfest2018","Verified?":true},"createdTime":"2019-09-03T17:49:25.000Z"},{"id":"recrbE1DenKJOxdWy","fields":{"Repo
- ID":"151148643","Repo Link":"https://github.com/s-bridges/Hacktoberfest-Sign-In-2019","Verified?":true},"createdTime":"2019-09-03T17:49:21.000Z"},{"id":"recsct0lCGzFHj8J7","fields":{"Repo
- ID":"211934113","Repo Link":"https://github.com/wajahatkarim3/Hacktoberfest2019","Verified?":true},"createdTime":"2019-10-01T13:47:41.000Z"},{"id":"recuwRSwEszfPDXsQ","fields":{"Repo
- Link":"https://github.com/js-org-cleanup/test","Repo ID":"211555898","Verified?":true,"Notes":"Used
- by Matt for testing timeline stuff."},"createdTime":"2019-10-01T13:18:07.000Z"},{"id":"recvH1KztAMM8BtEE","fields":{"Repo
- ID":"212030905","Repo Link":"https://github.com/whopriyam/HacktoberFest2019","Verified?":true},"createdTime":"2019-10-01T15:56:45.000Z"},{"id":"recvnwRPuMnsJ1lzn","fields":{"Repo
- ID":"212005575","Repo Link":"https://github.com/alicejohn110alicejohn110/HacktoberFest2019","Verified?":true},"createdTime":"2019-10-01T18:52:59.000Z"}]}'
- http_version:
- recorded_at: Wed, 02 Oct 2019 02:58:58 GMT
-recorded_with: VCR 5.0.0
diff --git a/spec/vcr/User/_incomplete/hacktoberfest_has_not_yet_ended/can_t_enter_the_incomplete_state.yml b/spec/vcr/User/_incomplete/hacktoberfest_has_not_yet_ended/can_t_enter_the_incomplete_state.yml
deleted file mode 100644
index 49ab31544..000000000
--- a/spec/vcr/User/_incomplete/hacktoberfest_has_not_yet_ended/can_t_enter_the_incomplete_state.yml
+++ /dev/null
@@ -1,123 +0,0 @@
----
-http_interactions:
-- request:
- method: post
- uri: https://api.github.com/graphql
- body:
- encoding: UTF-8
- string: '{"query":"query($username:String!) {\n user(login: $username) {\n pullRequests(states:
- OPEN last: 100) {\n nodes {\n id\n title\n body\n url\n createdAt\n labels(first:
- 100) {\n edges {\n node {\n name\n }\n }\n }\n }\n }\n }\n}\n","variables":{"username":"mkcode"}}'
- headers:
- User-Agent:
- - Faraday v0.12.2
- Authorization:
- - bearer
- Content-Type:
- - application/json
- Accept-Encoding:
- - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
- Accept:
- - "*/*"
- response:
- status:
- code: 200
- message: OK
- headers:
- Server:
- - GitHub.com
- Date:
- - Fri, 13 Sep 2019 20:08:26 GMT
- Content-Type:
- - application/json; charset=utf-8
- Transfer-Encoding:
- - chunked
- Status:
- - 200 OK
- Cache-Control:
- - no-cache
- X-Oauth-Scopes:
- - user:email
- X-Accepted-Oauth-Scopes:
- - repo
- X-Github-Media-Type:
- - github.v4; format=json
- X-Ratelimit-Limit:
- - '5000'
- X-Ratelimit-Remaining:
- - '4941'
- X-Ratelimit-Reset:
- - '1568408901'
- Access-Control-Expose-Headers:
- - ETag, Link, Location, Retry-After, X-GitHub-OTP, X-RateLimit-Limit, X-RateLimit-Remaining,
- X-RateLimit-Reset, X-OAuth-Scopes, X-Accepted-OAuth-Scopes, X-Poll-Interval,
- X-GitHub-Media-Type
- Access-Control-Allow-Origin:
- - "*"
- Strict-Transport-Security:
- - max-age=31536000; includeSubdomains; preload
- X-Frame-Options:
- - deny
- X-Content-Type-Options:
- - nosniff
- X-Xss-Protection:
- - 1; mode=block
- Referrer-Policy:
- - origin-when-cross-origin, strict-origin-when-cross-origin
- Content-Security-Policy:
- - default-src 'none'
- X-Github-Request-Id:
- - 0EB0:091E:A23339:135EF43:5D7BF73A
- body:
- encoding: ASCII-8BIT
- string: '{"data":{"user":{"pullRequests":{"nodes":[{"id":"MDExOlB1bGxSZXF1ZXN0NTc5MDc4Mg==","title":"Upgraded
- to rails 3.2 stable","body":"Hi, I''m using this app as template for a new
- project. Wanted to get on rails 3.2 stable before I started. Here it is!\n\nCheers\n","url":"https://github.com/maccman/spine.rails3/pull/6","createdAt":"2013-05-17T23:05:41Z","labels":{"edges":[]}},{"id":"MDExOlB1bGxSZXF1ZXN0NDcxMDUxNzU=","title":"Delete
- repos cleanup","body":"@PeterDaveHello - Thanks for your contribution. I''m
- using this work as an opportunity to clean up how we are doing testing in
- this app. I see that you basically copied the format from the create_repos
- spec - which was a good move.\n\nAfter reworking this so I can understand
- what is happening in https://github.com/education/teachers_pet/commit/be8a8b1ddb3a8ef79a88f53f6bd05649417f0515,
- I notice that we are not stubbing any repo deletion requests - which then
- therefore would mean that these tests aren''t actually sending any API requests.\n\n@PeterDaveHello
- - these tests should be hitting a delete repo endpoint on the GitHub API,
- should they not? Can we rework them so that they do? These tests should fail
- in the case the we comment out the `teachers_pet(:delete_repos)`... block.\n\n/cc
- @johndbritton \n","url":"https://github.com/education/teachers_pet/pull/126","createdAt":"2015-10-08T02:24:19Z","labels":{"edges":[]}},{"id":"MDExOlB1bGxSZXF1ZXN0NDc0Nzk5ODQ=","title":"Results
- by cookie","body":"Hi @deski - Following up on our discussion in #78 \n\nThis
- PR adds info from the peek cookie as discussed. It does not save Peek results
- unless the peek cookie is enabled. Always sets the cookie if peek is enabled.\n\nIn
- the case Peek was not enabled for a request, and is toggled on, `Peek::Views`
- with a `data-defer-to` are hidden and a refresh message is displayed: \n\n![screen
- shot 2015-10-12 at 8 41 31 pm](https://cloud.githubusercontent.com/assets/283496/10442611/22bb6a2e-7122-11e5-8fb3-c3fb5ed333b7.png)\n","url":"https://github.com/peek/peek/pull/79","createdAt":"2015-10-13T00:46:43Z","labels":{"edges":[]}},{"id":"MDExOlB1bGxSZXF1ZXN0NTE0MTg4ODg=","title":"Update
- README.md","body":"Add maintenance note to readme\n","url":"https://github.com/vulume/Cordova-DBCamera/pull/1","createdAt":"2015-11-20T22:49:53Z","labels":{"edges":[]}},{"id":"MDExOlB1bGxSZXF1ZXN0NjkyNjE4Mjk=","title":"Add
- natural layer","body":"Adds the beginnings of a prose layer.\n\nReplaces #5403
- according to the discussion in #5996.\n","url":"https://github.com/syl20bnr/spacemacs/pull/6012","createdAt":"2016-05-08T06:24:38Z","labels":{"edges":[{"node":{"name":"New
- Layer"}}]}},{"id":"MDExOlB1bGxSZXF1ZXN0OTA4ODAzMzQ=","title":"Coercion type
- systems","body":"Introducing switchable type coercion systems for Hashie.
- Follows up on #239.\n\nAdds ''dry-types'' and ''activemodel'' alongside Hashie''s
- builtin coercion system. Basic usage is written up in the README.\n\nFor the
- most part, reading the source should be straight forward. The ''coercion''
- folder under ''extensions'' contains the implementation of the 3 coercion
- systems. The `Hashie::Extensions::Coercion` module was split into two files.
- The file itself contains the interface and common coercion methods, while
- the `Coercion::HashieTypes` class now contains the actual coercion implementation.\n\nThe
- only confusing part is the `CoercionSystemIncludeBuilder` defined under `Hashie::Extensions::Coercion`.
- The purpose of this class is to DRY up the included hooks for `Hashie::Extensions::Coercion`
- and `Hashie::Extensions::Dash::Coercion`. The common includes are defined
- once, and reused in the default `included` method and the `active_model` and
- `dry_types` methods on both the default and Dash coercion classes. The `active_model`
- and `dry_types` methods on `Hashie::Extensions::Coercion` and `Hashie::Extensions::Dash::Coercion`
- both return an anonymous module with an `included` method correctly defined,
- which then is immediately executed because it then included. \n\nExample:
- \n\n``` ruby\nmod = Hashie::Extensions::Coercion.dry_types\n# => \n\nmod.methods\n#=> [:included]\n\nclass MyHash < Hashie::Hash\n include
- mod\nend\n#=> Hashie::Extensions::Coercion::ClassMethods, Hashie::Extensions::Coercion::InstanceMethods,
- and Hashie::Extensions::Coercion::DryTypes are all mixed into MyHash\n```\n\nThis
- is 100% backwards compatible and all the tests pass. I did not add any additional
- tests - we should not need many as the new coercion systems are well tested
- in their own repos. We may want to add a few tests though.\n","url":"https://github.com/intridea/hashie/pull/379","createdAt":"2016-10-25T19:59:18Z","labels":{"edges":[{"node":{"name":"new
- feature"}}]}}]}}}}'
- http_version:
- recorded_at: Fri, 13 Sep 2019 20:08:26 GMT
-recorded_with: VCR 5.0.0
diff --git a/spec/vcr/User/_ineligible/waiting_user_has_dropped_below_4_prs/persists_the_registered_state.yml b/spec/vcr/User/_ineligible/waiting_user_has_dropped_below_4_prs/persists_the_registered_state.yml
deleted file mode 100644
index 39acd1e29..000000000
--- a/spec/vcr/User/_ineligible/waiting_user_has_dropped_below_4_prs/persists_the_registered_state.yml
+++ /dev/null
@@ -1,165 +0,0 @@
----
-http_interactions:
-- request:
- method: post
- uri: https://api.github.com/graphql
- body:
- encoding: UTF-8
- string: '{"query":"query($username:String!) {\n user(login: $username) {\n pullRequests(states:
- OPEN last: 100) {\n nodes {\n id\n title\n body\n url\n createdAt\n labels(first:
- 100) {\n edges {\n node {\n name\n }\n }\n }\n }\n }\n }\n}\n","variables":{"username":"mkcode"}}'
- headers:
- User-Agent:
- - Faraday v0.12.2
- Authorization:
- - bearer
- Content-Type:
- - application/json
- Accept-Encoding:
- - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
- Accept:
- - "*/*"
- response:
- status:
- code: 200
- message: OK
- headers:
- Date:
- - Fri, 13 Sep 2019 19:58:06 GMT
- Content-Type:
- - application/json; charset=utf-8
- Transfer-Encoding:
- - chunked
- Server:
- - GitHub.com
- Status:
- - 200 OK
- Cache-Control:
- - no-cache
- X-Oauth-Scopes:
- - user:email
- X-Accepted-Oauth-Scopes:
- - repo
- X-Github-Media-Type:
- - github.v4; format=json
- X-Ratelimit-Limit:
- - '5000'
- X-Ratelimit-Remaining:
- - '4960'
- X-Ratelimit-Reset:
- - '1568408095'
- Access-Control-Expose-Headers:
- - ETag, Link, Location, Retry-After, X-GitHub-OTP, X-RateLimit-Limit, X-RateLimit-Remaining,
- X-RateLimit-Reset, X-OAuth-Scopes, X-Accepted-OAuth-Scopes, X-Poll-Interval,
- X-GitHub-Media-Type
- Access-Control-Allow-Origin:
- - "*"
- Strict-Transport-Security:
- - max-age=31536000; includeSubdomains; preload
- X-Frame-Options:
- - deny
- X-Content-Type-Options:
- - nosniff
- X-Xss-Protection:
- - 1; mode=block
- Referrer-Policy:
- - origin-when-cross-origin, strict-origin-when-cross-origin
- Content-Security-Policy:
- - default-src 'none'
- Vary:
- - Accept-Encoding
- X-Github-Request-Id:
- - 5D95:7D2C:25514A:3F41AC:5D7BF4CE
- body:
- encoding: ASCII-8BIT
- string: '{"data":{"user":{"pullRequests":{"nodes":[{"id":"MDExOlB1bGxSZXF1ZXN0NTc5MDc4Mg==","title":"Upgraded
- to rails 3.2 stable","body":"Hi, I''m using this app as template for a new
- project. Wanted to get on rails 3.2 stable before I started. Here it is!\n\nCheers\n","url":"https://github.com/maccman/spine.rails3/pull/6","createdAt":"2013-05-17T23:05:41Z","labels":{"edges":[]}},{"id":"MDExOlB1bGxSZXF1ZXN0NDcxMDUxNzU=","title":"Delete
- repos cleanup","body":"@PeterDaveHello - Thanks for your contribution. I''m
- using this work as an opportunity to clean up how we are doing testing in
- this app. I see that you basically copied the format from the create_repos
- spec - which was a good move.\n\nAfter reworking this so I can understand
- what is happening in https://github.com/education/teachers_pet/commit/be8a8b1ddb3a8ef79a88f53f6bd05649417f0515,
- I notice that we are not stubbing any repo deletion requests - which then
- therefore would mean that these tests aren''t actually sending any API requests.\n\n@PeterDaveHello
- - these tests should be hitting a delete repo endpoint on the GitHub API,
- should they not? Can we rework them so that they do? These tests should fail
- in the case the we comment out the `teachers_pet(:delete_repos)`... block.\n\n/cc
- @johndbritton \n","url":"https://github.com/education/teachers_pet/pull/126","createdAt":"2015-10-08T02:24:19Z","labels":{"edges":[]}},{"id":"MDExOlB1bGxSZXF1ZXN0NDc0Nzk5ODQ=","title":"Results
- by cookie","body":"Hi @deski - Following up on our discussion in #78 \n\nThis
- PR adds info from the peek cookie as discussed. It does not save Peek results
- unless the peek cookie is enabled. Always sets the cookie if peek is enabled.\n\nIn
- the case Peek was not enabled for a request, and is toggled on, `Peek::Views`
- with a `data-defer-to` are hidden and a refresh message is displayed: \n\n![screen
- shot 2015-10-12 at 8 41 31 pm](https://cloud.githubusercontent.com/assets/283496/10442611/22bb6a2e-7122-11e5-8fb3-c3fb5ed333b7.png)\n","url":"https://github.com/peek/peek/pull/79","createdAt":"2015-10-13T00:46:43Z","labels":{"edges":[]}},{"id":"MDExOlB1bGxSZXF1ZXN0NTE0MTg4ODg=","title":"Update
- README.md","body":"Add maintenance note to readme\n","url":"https://github.com/vulume/Cordova-DBCamera/pull/1","createdAt":"2015-11-20T22:49:53Z","labels":{"edges":[]}},{"id":"MDExOlB1bGxSZXF1ZXN0NjkyNjE4Mjk=","title":"Add
- natural layer","body":"Adds the beginnings of a prose layer.\n\nReplaces #5403
- according to the discussion in #5996.\n","url":"https://github.com/syl20bnr/spacemacs/pull/6012","createdAt":"2016-05-08T06:24:38Z","labels":{"edges":[{"node":{"name":"New
- Layer"}}]}},{"id":"MDExOlB1bGxSZXF1ZXN0OTA4ODAzMzQ=","title":"Coercion type
- systems","body":"Introducing switchable type coercion systems for Hashie.
- Follows up on #239.\n\nAdds ''dry-types'' and ''activemodel'' alongside Hashie''s
- builtin coercion system. Basic usage is written up in the README.\n\nFor the
- most part, reading the source should be straight forward. The ''coercion''
- folder under ''extensions'' contains the implementation of the 3 coercion
- systems. The `Hashie::Extensions::Coercion` module was split into two files.
- The file itself contains the interface and common coercion methods, while
- the `Coercion::HashieTypes` class now contains the actual coercion implementation.\n\nThe
- only confusing part is the `CoercionSystemIncludeBuilder` defined under `Hashie::Extensions::Coercion`.
- The purpose of this class is to DRY up the included hooks for `Hashie::Extensions::Coercion`
- and `Hashie::Extensions::Dash::Coercion`. The common includes are defined
- once, and reused in the default `included` method and the `active_model` and
- `dry_types` methods on both the default and Dash coercion classes. The `active_model`
- and `dry_types` methods on `Hashie::Extensions::Coercion` and `Hashie::Extensions::Dash::Coercion`
- both return an anonymous module with an `included` method correctly defined,
- which then is immediately executed because it then included. \n\nExample:
- \n\n``` ruby\nmod = Hashie::Extensions::Coercion.dry_types\n# => \n\nmod.methods\n#=> [:included]\n\nclass MyHash < Hashie::Hash\n include
- mod\nend\n#=> Hashie::Extensions::Coercion::ClassMethods, Hashie::Extensions::Coercion::InstanceMethods,
- and Hashie::Extensions::Coercion::DryTypes are all mixed into MyHash\n```\n\nThis
- is 100% backwards compatible and all the tests pass. I did not add any additional
- tests - we should not need many as the new coercion systems are well tested
- in their own repos. We may want to add a few tests though.\n","url":"https://github.com/intridea/hashie/pull/379","createdAt":"2016-10-25T19:59:18Z","labels":{"edges":[{"node":{"name":"new
- feature"}}]}}]}}}}'
- http_version:
- recorded_at: Fri, 13 Sep 2019 19:58:06 GMT
-- request:
- method: post
- uri: https://api.segment.io/v1/import
- body:
- encoding: UTF-8
- string: '{"sentAt":"2019-09-13T16:13:41.046-04:00","batch":[{"userId":1,"anonymousId":null,"integrations":null,"context":{"library":{"name":"analytics-ruby","version":"2.0.13"}},"traits":{"pull_requests_count":0},"options":null,"timestamp":"2019-09-13T16:13:41.044-04:00","type":"identify","messageId":"69b8b72e-94ff-4359-922d-cecf45ddf5d2"},{"userId":1,"anonymousId":null,"integrations":null,"context":{"library":{"name":"analytics-ruby","version":"2.0.13"}},"traits":{"email":null,"marketing_emails":false,"state":"register"},"options":null,"timestamp":"2019-09-13T16:13:41.044-04:00","type":"identify","messageId":"c66cd475-75d7-497e-b98b-289c366223cd"},{"event":"register","userId":1,"anonymousId":null,"context":{"library":{"name":"analytics-ruby","version":"2.0.13"}},"options":null,"integrations":null,"properties":{},"timestamp":"2019-09-13T16:13:41.044-04:00","type":"track","messageId":"1deef23f-83e6-4424-ab20-9bde65f5b22f"}]}'
- headers:
- Content-Type:
- - application/json
- Accept:
- - application/json
- Accept-Encoding:
- - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
- User-Agent:
- - Ruby
- Authorization:
- - Basic NWw3czVyTVl0T3doWUNZMDBTcnIzMTYzWkZmR2N5ZVQ6
- response:
- status:
- code: 200
- message: OK
- headers:
- Date:
- - Fri, 13 Sep 2019 20:13:41 GMT
- Content-Type:
- - application/json
- Content-Length:
- - '21'
- Connection:
- - keep-alive
- Vary:
- - Origin
- body:
- encoding: UTF-8
- string: |-
- {
- "success": true
- }
- http_version:
- recorded_at: Fri, 13 Sep 2019 20:13:41 GMT
-recorded_with: VCR 5.0.0
diff --git a/spec/vcr/User/_ineligible/waiting_user_has_dropped_below_4_prs/transitions_the_user_back_to_the_registered_state.yml b/spec/vcr/User/_ineligible/waiting_user_has_dropped_below_4_prs/transitions_the_user_back_to_the_registered_state.yml
deleted file mode 100644
index c85665719..000000000
--- a/spec/vcr/User/_ineligible/waiting_user_has_dropped_below_4_prs/transitions_the_user_back_to_the_registered_state.yml
+++ /dev/null
@@ -1,125 +0,0 @@
----
-http_interactions:
-- request:
- method: post
- uri: https://api.github.com/graphql
- body:
- encoding: UTF-8
- string: '{"query":"query($username:String!) {\n user(login: $username) {\n pullRequests(states:
- OPEN last: 100) {\n nodes {\n id\n title\n body\n url\n createdAt\n labels(first:
- 100) {\n edges {\n node {\n name\n }\n }\n }\n }\n }\n }\n}\n","variables":{"username":"mkcode"}}'
- headers:
- User-Agent:
- - Faraday v0.12.2
- Authorization:
- - bearer
- Content-Type:
- - application/json
- Accept-Encoding:
- - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
- Accept:
- - "*/*"
- response:
- status:
- code: 200
- message: OK
- headers:
- Date:
- - Fri, 13 Sep 2019 19:58:06 GMT
- Content-Type:
- - application/json; charset=utf-8
- Transfer-Encoding:
- - chunked
- Server:
- - GitHub.com
- Status:
- - 200 OK
- Cache-Control:
- - no-cache
- X-Oauth-Scopes:
- - user:email
- X-Accepted-Oauth-Scopes:
- - repo
- X-Github-Media-Type:
- - github.v4; format=json
- X-Ratelimit-Limit:
- - '5000'
- X-Ratelimit-Remaining:
- - '4961'
- X-Ratelimit-Reset:
- - '1568408095'
- Access-Control-Expose-Headers:
- - ETag, Link, Location, Retry-After, X-GitHub-OTP, X-RateLimit-Limit, X-RateLimit-Remaining,
- X-RateLimit-Reset, X-OAuth-Scopes, X-Accepted-OAuth-Scopes, X-Poll-Interval,
- X-GitHub-Media-Type
- Access-Control-Allow-Origin:
- - "*"
- Strict-Transport-Security:
- - max-age=31536000; includeSubdomains; preload
- X-Frame-Options:
- - deny
- X-Content-Type-Options:
- - nosniff
- X-Xss-Protection:
- - 1; mode=block
- Referrer-Policy:
- - origin-when-cross-origin, strict-origin-when-cross-origin
- Content-Security-Policy:
- - default-src 'none'
- Vary:
- - Accept-Encoding
- X-Github-Request-Id:
- - 2A47:75CC:18962B:2A90E5:5D7BF4CE
- body:
- encoding: ASCII-8BIT
- string: '{"data":{"user":{"pullRequests":{"nodes":[{"id":"MDExOlB1bGxSZXF1ZXN0NTc5MDc4Mg==","title":"Upgraded
- to rails 3.2 stable","body":"Hi, I''m using this app as template for a new
- project. Wanted to get on rails 3.2 stable before I started. Here it is!\n\nCheers\n","url":"https://github.com/maccman/spine.rails3/pull/6","createdAt":"2013-05-17T23:05:41Z","labels":{"edges":[]}},{"id":"MDExOlB1bGxSZXF1ZXN0NDcxMDUxNzU=","title":"Delete
- repos cleanup","body":"@PeterDaveHello - Thanks for your contribution. I''m
- using this work as an opportunity to clean up how we are doing testing in
- this app. I see that you basically copied the format from the create_repos
- spec - which was a good move.\n\nAfter reworking this so I can understand
- what is happening in https://github.com/education/teachers_pet/commit/be8a8b1ddb3a8ef79a88f53f6bd05649417f0515,
- I notice that we are not stubbing any repo deletion requests - which then
- therefore would mean that these tests aren''t actually sending any API requests.\n\n@PeterDaveHello
- - these tests should be hitting a delete repo endpoint on the GitHub API,
- should they not? Can we rework them so that they do? These tests should fail
- in the case the we comment out the `teachers_pet(:delete_repos)`... block.\n\n/cc
- @johndbritton \n","url":"https://github.com/education/teachers_pet/pull/126","createdAt":"2015-10-08T02:24:19Z","labels":{"edges":[]}},{"id":"MDExOlB1bGxSZXF1ZXN0NDc0Nzk5ODQ=","title":"Results
- by cookie","body":"Hi @deski - Following up on our discussion in #78 \n\nThis
- PR adds info from the peek cookie as discussed. It does not save Peek results
- unless the peek cookie is enabled. Always sets the cookie if peek is enabled.\n\nIn
- the case Peek was not enabled for a request, and is toggled on, `Peek::Views`
- with a `data-defer-to` are hidden and a refresh message is displayed: \n\n![screen
- shot 2015-10-12 at 8 41 31 pm](https://cloud.githubusercontent.com/assets/283496/10442611/22bb6a2e-7122-11e5-8fb3-c3fb5ed333b7.png)\n","url":"https://github.com/peek/peek/pull/79","createdAt":"2015-10-13T00:46:43Z","labels":{"edges":[]}},{"id":"MDExOlB1bGxSZXF1ZXN0NTE0MTg4ODg=","title":"Update
- README.md","body":"Add maintenance note to readme\n","url":"https://github.com/vulume/Cordova-DBCamera/pull/1","createdAt":"2015-11-20T22:49:53Z","labels":{"edges":[]}},{"id":"MDExOlB1bGxSZXF1ZXN0NjkyNjE4Mjk=","title":"Add
- natural layer","body":"Adds the beginnings of a prose layer.\n\nReplaces #5403
- according to the discussion in #5996.\n","url":"https://github.com/syl20bnr/spacemacs/pull/6012","createdAt":"2016-05-08T06:24:38Z","labels":{"edges":[{"node":{"name":"New
- Layer"}}]}},{"id":"MDExOlB1bGxSZXF1ZXN0OTA4ODAzMzQ=","title":"Coercion type
- systems","body":"Introducing switchable type coercion systems for Hashie.
- Follows up on #239.\n\nAdds ''dry-types'' and ''activemodel'' alongside Hashie''s
- builtin coercion system. Basic usage is written up in the README.\n\nFor the
- most part, reading the source should be straight forward. The ''coercion''
- folder under ''extensions'' contains the implementation of the 3 coercion
- systems. The `Hashie::Extensions::Coercion` module was split into two files.
- The file itself contains the interface and common coercion methods, while
- the `Coercion::HashieTypes` class now contains the actual coercion implementation.\n\nThe
- only confusing part is the `CoercionSystemIncludeBuilder` defined under `Hashie::Extensions::Coercion`.
- The purpose of this class is to DRY up the included hooks for `Hashie::Extensions::Coercion`
- and `Hashie::Extensions::Dash::Coercion`. The common includes are defined
- once, and reused in the default `included` method and the `active_model` and
- `dry_types` methods on both the default and Dash coercion classes. The `active_model`
- and `dry_types` methods on `Hashie::Extensions::Coercion` and `Hashie::Extensions::Dash::Coercion`
- both return an anonymous module with an `included` method correctly defined,
- which then is immediately executed because it then included. \n\nExample:
- \n\n``` ruby\nmod = Hashie::Extensions::Coercion.dry_types\n# => \n\nmod.methods\n#=> [:included]\n\nclass MyHash < Hashie::Hash\n include
- mod\nend\n#=> Hashie::Extensions::Coercion::ClassMethods, Hashie::Extensions::Coercion::InstanceMethods,
- and Hashie::Extensions::Coercion::DryTypes are all mixed into MyHash\n```\n\nThis
- is 100% backwards compatible and all the tests pass. I did not add any additional
- tests - we should not need many as the new coercion systems are well tested
- in their own repos. We may want to add a few tests though.\n","url":"https://github.com/intridea/hashie/pull/379","createdAt":"2016-10-25T19:59:18Z","labels":{"edges":[{"node":{"name":"new
- feature"}}]}}]}}}}'
- http_version:
- recorded_at: Fri, 13 Sep 2019 19:58:06 GMT
-recorded_with: VCR 5.0.0
diff --git a/spec/vcr/User/_ineligible/waiting_user_has_dropped_below_4_prs/transitions_user_to_registered.yml b/spec/vcr/User/_ineligible/waiting_user_has_dropped_below_4_prs/transitions_user_to_registered.yml
deleted file mode 100644
index d335f36b1..000000000
--- a/spec/vcr/User/_ineligible/waiting_user_has_dropped_below_4_prs/transitions_user_to_registered.yml
+++ /dev/null
@@ -1,123 +0,0 @@
----
-http_interactions:
-- request:
- method: post
- uri: https://api.github.com/graphql
- body:
- encoding: UTF-8
- string: '{"query":"query($username:String!) {\n user(login: $username) {\n pullRequests(states:
- OPEN last: 100) {\n nodes {\n id\n title\n body\n url\n createdAt\n labels(first:
- 100) {\n edges {\n node {\n name\n }\n }\n }\n }\n }\n }\n}\n","variables":{"username":"mkcode"}}'
- headers:
- User-Agent:
- - Faraday v0.12.2
- Authorization:
- - bearer
- Content-Type:
- - application/json
- Accept-Encoding:
- - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
- Accept:
- - "*/*"
- response:
- status:
- code: 200
- message: OK
- headers:
- Server:
- - GitHub.com
- Date:
- - Fri, 13 Sep 2019 20:08:25 GMT
- Content-Type:
- - application/json; charset=utf-8
- Transfer-Encoding:
- - chunked
- Status:
- - 200 OK
- Cache-Control:
- - no-cache
- X-Oauth-Scopes:
- - user:email
- X-Accepted-Oauth-Scopes:
- - repo
- X-Github-Media-Type:
- - github.v4; format=json
- X-Ratelimit-Limit:
- - '5000'
- X-Ratelimit-Remaining:
- - '4942'
- X-Ratelimit-Reset:
- - '1568408901'
- Access-Control-Expose-Headers:
- - ETag, Link, Location, Retry-After, X-GitHub-OTP, X-RateLimit-Limit, X-RateLimit-Remaining,
- X-RateLimit-Reset, X-OAuth-Scopes, X-Accepted-OAuth-Scopes, X-Poll-Interval,
- X-GitHub-Media-Type
- Access-Control-Allow-Origin:
- - "*"
- Strict-Transport-Security:
- - max-age=31536000; includeSubdomains; preload
- X-Frame-Options:
- - deny
- X-Content-Type-Options:
- - nosniff
- X-Xss-Protection:
- - 1; mode=block
- Referrer-Policy:
- - origin-when-cross-origin, strict-origin-when-cross-origin
- Content-Security-Policy:
- - default-src 'none'
- X-Github-Request-Id:
- - 66C9:7274:4E228F:B9AB49:5D7BF739
- body:
- encoding: ASCII-8BIT
- string: '{"data":{"user":{"pullRequests":{"nodes":[{"id":"MDExOlB1bGxSZXF1ZXN0NTc5MDc4Mg==","title":"Upgraded
- to rails 3.2 stable","body":"Hi, I''m using this app as template for a new
- project. Wanted to get on rails 3.2 stable before I started. Here it is!\n\nCheers\n","url":"https://github.com/maccman/spine.rails3/pull/6","createdAt":"2013-05-17T23:05:41Z","labels":{"edges":[]}},{"id":"MDExOlB1bGxSZXF1ZXN0NDcxMDUxNzU=","title":"Delete
- repos cleanup","body":"@PeterDaveHello - Thanks for your contribution. I''m
- using this work as an opportunity to clean up how we are doing testing in
- this app. I see that you basically copied the format from the create_repos
- spec - which was a good move.\n\nAfter reworking this so I can understand
- what is happening in https://github.com/education/teachers_pet/commit/be8a8b1ddb3a8ef79a88f53f6bd05649417f0515,
- I notice that we are not stubbing any repo deletion requests - which then
- therefore would mean that these tests aren''t actually sending any API requests.\n\n@PeterDaveHello
- - these tests should be hitting a delete repo endpoint on the GitHub API,
- should they not? Can we rework them so that they do? These tests should fail
- in the case the we comment out the `teachers_pet(:delete_repos)`... block.\n\n/cc
- @johndbritton \n","url":"https://github.com/education/teachers_pet/pull/126","createdAt":"2015-10-08T02:24:19Z","labels":{"edges":[]}},{"id":"MDExOlB1bGxSZXF1ZXN0NDc0Nzk5ODQ=","title":"Results
- by cookie","body":"Hi @deski - Following up on our discussion in #78 \n\nThis
- PR adds info from the peek cookie as discussed. It does not save Peek results
- unless the peek cookie is enabled. Always sets the cookie if peek is enabled.\n\nIn
- the case Peek was not enabled for a request, and is toggled on, `Peek::Views`
- with a `data-defer-to` are hidden and a refresh message is displayed: \n\n![screen
- shot 2015-10-12 at 8 41 31 pm](https://cloud.githubusercontent.com/assets/283496/10442611/22bb6a2e-7122-11e5-8fb3-c3fb5ed333b7.png)\n","url":"https://github.com/peek/peek/pull/79","createdAt":"2015-10-13T00:46:43Z","labels":{"edges":[]}},{"id":"MDExOlB1bGxSZXF1ZXN0NTE0MTg4ODg=","title":"Update
- README.md","body":"Add maintenance note to readme\n","url":"https://github.com/vulume/Cordova-DBCamera/pull/1","createdAt":"2015-11-20T22:49:53Z","labels":{"edges":[]}},{"id":"MDExOlB1bGxSZXF1ZXN0NjkyNjE4Mjk=","title":"Add
- natural layer","body":"Adds the beginnings of a prose layer.\n\nReplaces #5403
- according to the discussion in #5996.\n","url":"https://github.com/syl20bnr/spacemacs/pull/6012","createdAt":"2016-05-08T06:24:38Z","labels":{"edges":[{"node":{"name":"New
- Layer"}}]}},{"id":"MDExOlB1bGxSZXF1ZXN0OTA4ODAzMzQ=","title":"Coercion type
- systems","body":"Introducing switchable type coercion systems for Hashie.
- Follows up on #239.\n\nAdds ''dry-types'' and ''activemodel'' alongside Hashie''s
- builtin coercion system. Basic usage is written up in the README.\n\nFor the
- most part, reading the source should be straight forward. The ''coercion''
- folder under ''extensions'' contains the implementation of the 3 coercion
- systems. The `Hashie::Extensions::Coercion` module was split into two files.
- The file itself contains the interface and common coercion methods, while
- the `Coercion::HashieTypes` class now contains the actual coercion implementation.\n\nThe
- only confusing part is the `CoercionSystemIncludeBuilder` defined under `Hashie::Extensions::Coercion`.
- The purpose of this class is to DRY up the included hooks for `Hashie::Extensions::Coercion`
- and `Hashie::Extensions::Dash::Coercion`. The common includes are defined
- once, and reused in the default `included` method and the `active_model` and
- `dry_types` methods on both the default and Dash coercion classes. The `active_model`
- and `dry_types` methods on `Hashie::Extensions::Coercion` and `Hashie::Extensions::Dash::Coercion`
- both return an anonymous module with an `included` method correctly defined,
- which then is immediately executed because it then included. \n\nExample:
- \n\n``` ruby\nmod = Hashie::Extensions::Coercion.dry_types\n# => \n\nmod.methods\n#=> [:included]\n\nclass MyHash < Hashie::Hash\n include
- mod\nend\n#=> Hashie::Extensions::Coercion::ClassMethods, Hashie::Extensions::Coercion::InstanceMethods,
- and Hashie::Extensions::Coercion::DryTypes are all mixed into MyHash\n```\n\nThis
- is 100% backwards compatible and all the tests pass. I did not add any additional
- tests - we should not need many as the new coercion systems are well tested
- in their own repos. We may want to add a few tests though.\n","url":"https://github.com/intridea/hashie/pull/379","createdAt":"2016-10-25T19:59:18Z","labels":{"edges":[{"node":{"name":"new
- feature"}}]}}]}}}}'
- http_version:
- recorded_at: Fri, 13 Sep 2019 20:08:26 GMT
-recorded_with: VCR 5.0.0
diff --git a/spec/vcr/User/_register/an_unregistered_user_has_an_email_and_has_agreed_to_terms/allows_the_user_to_enter_the_registered_state.yml b/spec/vcr/User/_register/an_unregistered_user_has_an_email_and_has_agreed_to_terms/allows_the_user_to_enter_the_registered_state.yml
deleted file mode 100644
index 7f6b38d17..000000000
--- a/spec/vcr/User/_register/an_unregistered_user_has_an_email_and_has_agreed_to_terms/allows_the_user_to_enter_the_registered_state.yml
+++ /dev/null
@@ -1,125 +0,0 @@
----
-http_interactions:
-- request:
- method: post
- uri: https://api.github.com/graphql
- body:
- encoding: UTF-8
- string: '{"query":"query($username:String!) {\n user(login: $username) {\n pullRequests(states:
- OPEN last: 100) {\n nodes {\n id\n title\n body\n url\n createdAt\n labels(first:
- 100) {\n edges {\n node {\n name\n }\n }\n }\n }\n }\n }\n}\n","variables":{"username":"mkcode"}}'
- headers:
- User-Agent:
- - Faraday v0.12.2
- Authorization:
- - bearer
- Content-Type:
- - application/json
- Accept-Encoding:
- - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
- Accept:
- - "*/*"
- response:
- status:
- code: 200
- message: OK
- headers:
- Date:
- - Fri, 13 Sep 2019 19:58:02 GMT
- Content-Type:
- - application/json; charset=utf-8
- Transfer-Encoding:
- - chunked
- Server:
- - GitHub.com
- Status:
- - 200 OK
- Cache-Control:
- - no-cache
- X-Oauth-Scopes:
- - user:email
- X-Accepted-Oauth-Scopes:
- - repo
- X-Github-Media-Type:
- - github.v4; format=json
- X-Ratelimit-Limit:
- - '5000'
- X-Ratelimit-Remaining:
- - '4971'
- X-Ratelimit-Reset:
- - '1568408095'
- Access-Control-Expose-Headers:
- - ETag, Link, Location, Retry-After, X-GitHub-OTP, X-RateLimit-Limit, X-RateLimit-Remaining,
- X-RateLimit-Reset, X-OAuth-Scopes, X-Accepted-OAuth-Scopes, X-Poll-Interval,
- X-GitHub-Media-Type
- Access-Control-Allow-Origin:
- - "*"
- Strict-Transport-Security:
- - max-age=31536000; includeSubdomains; preload
- X-Frame-Options:
- - deny
- X-Content-Type-Options:
- - nosniff
- X-Xss-Protection:
- - 1; mode=block
- Referrer-Policy:
- - origin-when-cross-origin, strict-origin-when-cross-origin
- Content-Security-Policy:
- - default-src 'none'
- Vary:
- - Accept-Encoding
- X-Github-Request-Id:
- - 6928:0446:111BCB:1D0A87:5D7BF4CA
- body:
- encoding: ASCII-8BIT
- string: '{"data":{"user":{"pullRequests":{"nodes":[{"id":"MDExOlB1bGxSZXF1ZXN0NTc5MDc4Mg==","title":"Upgraded
- to rails 3.2 stable","body":"Hi, I''m using this app as template for a new
- project. Wanted to get on rails 3.2 stable before I started. Here it is!\n\nCheers\n","url":"https://github.com/maccman/spine.rails3/pull/6","createdAt":"2013-05-17T23:05:41Z","labels":{"edges":[]}},{"id":"MDExOlB1bGxSZXF1ZXN0NDcxMDUxNzU=","title":"Delete
- repos cleanup","body":"@PeterDaveHello - Thanks for your contribution. I''m
- using this work as an opportunity to clean up how we are doing testing in
- this app. I see that you basically copied the format from the create_repos
- spec - which was a good move.\n\nAfter reworking this so I can understand
- what is happening in https://github.com/education/teachers_pet/commit/be8a8b1ddb3a8ef79a88f53f6bd05649417f0515,
- I notice that we are not stubbing any repo deletion requests - which then
- therefore would mean that these tests aren''t actually sending any API requests.\n\n@PeterDaveHello
- - these tests should be hitting a delete repo endpoint on the GitHub API,
- should they not? Can we rework them so that they do? These tests should fail
- in the case the we comment out the `teachers_pet(:delete_repos)`... block.\n\n/cc
- @johndbritton \n","url":"https://github.com/education/teachers_pet/pull/126","createdAt":"2015-10-08T02:24:19Z","labels":{"edges":[]}},{"id":"MDExOlB1bGxSZXF1ZXN0NDc0Nzk5ODQ=","title":"Results
- by cookie","body":"Hi @deski - Following up on our discussion in #78 \n\nThis
- PR adds info from the peek cookie as discussed. It does not save Peek results
- unless the peek cookie is enabled. Always sets the cookie if peek is enabled.\n\nIn
- the case Peek was not enabled for a request, and is toggled on, `Peek::Views`
- with a `data-defer-to` are hidden and a refresh message is displayed: \n\n![screen
- shot 2015-10-12 at 8 41 31 pm](https://cloud.githubusercontent.com/assets/283496/10442611/22bb6a2e-7122-11e5-8fb3-c3fb5ed333b7.png)\n","url":"https://github.com/peek/peek/pull/79","createdAt":"2015-10-13T00:46:43Z","labels":{"edges":[]}},{"id":"MDExOlB1bGxSZXF1ZXN0NTE0MTg4ODg=","title":"Update
- README.md","body":"Add maintenance note to readme\n","url":"https://github.com/vulume/Cordova-DBCamera/pull/1","createdAt":"2015-11-20T22:49:53Z","labels":{"edges":[]}},{"id":"MDExOlB1bGxSZXF1ZXN0NjkyNjE4Mjk=","title":"Add
- natural layer","body":"Adds the beginnings of a prose layer.\n\nReplaces #5403
- according to the discussion in #5996.\n","url":"https://github.com/syl20bnr/spacemacs/pull/6012","createdAt":"2016-05-08T06:24:38Z","labels":{"edges":[{"node":{"name":"New
- Layer"}}]}},{"id":"MDExOlB1bGxSZXF1ZXN0OTA4ODAzMzQ=","title":"Coercion type
- systems","body":"Introducing switchable type coercion systems for Hashie.
- Follows up on #239.\n\nAdds ''dry-types'' and ''activemodel'' alongside Hashie''s
- builtin coercion system. Basic usage is written up in the README.\n\nFor the
- most part, reading the source should be straight forward. The ''coercion''
- folder under ''extensions'' contains the implementation of the 3 coercion
- systems. The `Hashie::Extensions::Coercion` module was split into two files.
- The file itself contains the interface and common coercion methods, while
- the `Coercion::HashieTypes` class now contains the actual coercion implementation.\n\nThe
- only confusing part is the `CoercionSystemIncludeBuilder` defined under `Hashie::Extensions::Coercion`.
- The purpose of this class is to DRY up the included hooks for `Hashie::Extensions::Coercion`
- and `Hashie::Extensions::Dash::Coercion`. The common includes are defined
- once, and reused in the default `included` method and the `active_model` and
- `dry_types` methods on both the default and Dash coercion classes. The `active_model`
- and `dry_types` methods on `Hashie::Extensions::Coercion` and `Hashie::Extensions::Dash::Coercion`
- both return an anonymous module with an `included` method correctly defined,
- which then is immediately executed because it then included. \n\nExample:
- \n\n``` ruby\nmod = Hashie::Extensions::Coercion.dry_types\n# => \n\nmod.methods\n#=> [:included]\n\nclass MyHash < Hashie::Hash\n include
- mod\nend\n#=> Hashie::Extensions::Coercion::ClassMethods, Hashie::Extensions::Coercion::InstanceMethods,
- and Hashie::Extensions::Coercion::DryTypes are all mixed into MyHash\n```\n\nThis
- is 100% backwards compatible and all the tests pass. I did not add any additional
- tests - we should not need many as the new coercion systems are well tested
- in their own repos. We may want to add a few tests though.\n","url":"https://github.com/intridea/hashie/pull/379","createdAt":"2016-10-25T19:59:18Z","labels":{"edges":[{"node":{"name":"new
- feature"}}]}}]}}}}'
- http_version:
- recorded_at: Fri, 13 Sep 2019 19:58:02 GMT
-recorded_with: VCR 5.0.0
diff --git a/spec/vcr/User/_register/an_unregistered_user_has_an_email_and_has_agreed_to_terms/can_enter_the_registered_state.yml b/spec/vcr/User/_register/an_unregistered_user_has_an_email_and_has_agreed_to_terms/can_enter_the_registered_state.yml
deleted file mode 100644
index 4250aafb3..000000000
--- a/spec/vcr/User/_register/an_unregistered_user_has_an_email_and_has_agreed_to_terms/can_enter_the_registered_state.yml
+++ /dev/null
@@ -1,123 +0,0 @@
----
-http_interactions:
-- request:
- method: post
- uri: https://api.github.com/graphql
- body:
- encoding: UTF-8
- string: '{"query":"query($username:String!) {\n user(login: $username) {\n pullRequests(states:
- OPEN last: 100) {\n nodes {\n id\n title\n body\n url\n createdAt\n labels(first:
- 100) {\n edges {\n node {\n name\n }\n }\n }\n }\n }\n }\n}\n","variables":{"username":"mkcode"}}'
- headers:
- User-Agent:
- - Faraday v0.12.2
- Authorization:
- - bearer
- Content-Type:
- - application/json
- Accept-Encoding:
- - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
- Accept:
- - "*/*"
- response:
- status:
- code: 200
- message: OK
- headers:
- Server:
- - GitHub.com
- Date:
- - Fri, 13 Sep 2019 20:08:23 GMT
- Content-Type:
- - application/json; charset=utf-8
- Transfer-Encoding:
- - chunked
- Status:
- - 200 OK
- Cache-Control:
- - no-cache
- X-Oauth-Scopes:
- - user:email
- X-Accepted-Oauth-Scopes:
- - repo
- X-Github-Media-Type:
- - github.v4; format=json
- X-Ratelimit-Limit:
- - '5000'
- X-Ratelimit-Remaining:
- - '4949'
- X-Ratelimit-Reset:
- - '1568408901'
- Access-Control-Expose-Headers:
- - ETag, Link, Location, Retry-After, X-GitHub-OTP, X-RateLimit-Limit, X-RateLimit-Remaining,
- X-RateLimit-Reset, X-OAuth-Scopes, X-Accepted-OAuth-Scopes, X-Poll-Interval,
- X-GitHub-Media-Type
- Access-Control-Allow-Origin:
- - "*"
- Strict-Transport-Security:
- - max-age=31536000; includeSubdomains; preload
- X-Frame-Options:
- - deny
- X-Content-Type-Options:
- - nosniff
- X-Xss-Protection:
- - 1; mode=block
- Referrer-Policy:
- - origin-when-cross-origin, strict-origin-when-cross-origin
- Content-Security-Policy:
- - default-src 'none'
- X-Github-Request-Id:
- - 41AF:6B95:AB915B:1478488:5D7BF737
- body:
- encoding: ASCII-8BIT
- string: '{"data":{"user":{"pullRequests":{"nodes":[{"id":"MDExOlB1bGxSZXF1ZXN0NTc5MDc4Mg==","title":"Upgraded
- to rails 3.2 stable","body":"Hi, I''m using this app as template for a new
- project. Wanted to get on rails 3.2 stable before I started. Here it is!\n\nCheers\n","url":"https://github.com/maccman/spine.rails3/pull/6","createdAt":"2013-05-17T23:05:41Z","labels":{"edges":[]}},{"id":"MDExOlB1bGxSZXF1ZXN0NDcxMDUxNzU=","title":"Delete
- repos cleanup","body":"@PeterDaveHello - Thanks for your contribution. I''m
- using this work as an opportunity to clean up how we are doing testing in
- this app. I see that you basically copied the format from the create_repos
- spec - which was a good move.\n\nAfter reworking this so I can understand
- what is happening in https://github.com/education/teachers_pet/commit/be8a8b1ddb3a8ef79a88f53f6bd05649417f0515,
- I notice that we are not stubbing any repo deletion requests - which then
- therefore would mean that these tests aren''t actually sending any API requests.\n\n@PeterDaveHello
- - these tests should be hitting a delete repo endpoint on the GitHub API,
- should they not? Can we rework them so that they do? These tests should fail
- in the case the we comment out the `teachers_pet(:delete_repos)`... block.\n\n/cc
- @johndbritton \n","url":"https://github.com/education/teachers_pet/pull/126","createdAt":"2015-10-08T02:24:19Z","labels":{"edges":[]}},{"id":"MDExOlB1bGxSZXF1ZXN0NDc0Nzk5ODQ=","title":"Results
- by cookie","body":"Hi @deski - Following up on our discussion in #78 \n\nThis
- PR adds info from the peek cookie as discussed. It does not save Peek results
- unless the peek cookie is enabled. Always sets the cookie if peek is enabled.\n\nIn
- the case Peek was not enabled for a request, and is toggled on, `Peek::Views`
- with a `data-defer-to` are hidden and a refresh message is displayed: \n\n![screen
- shot 2015-10-12 at 8 41 31 pm](https://cloud.githubusercontent.com/assets/283496/10442611/22bb6a2e-7122-11e5-8fb3-c3fb5ed333b7.png)\n","url":"https://github.com/peek/peek/pull/79","createdAt":"2015-10-13T00:46:43Z","labels":{"edges":[]}},{"id":"MDExOlB1bGxSZXF1ZXN0NTE0MTg4ODg=","title":"Update
- README.md","body":"Add maintenance note to readme\n","url":"https://github.com/vulume/Cordova-DBCamera/pull/1","createdAt":"2015-11-20T22:49:53Z","labels":{"edges":[]}},{"id":"MDExOlB1bGxSZXF1ZXN0NjkyNjE4Mjk=","title":"Add
- natural layer","body":"Adds the beginnings of a prose layer.\n\nReplaces #5403
- according to the discussion in #5996.\n","url":"https://github.com/syl20bnr/spacemacs/pull/6012","createdAt":"2016-05-08T06:24:38Z","labels":{"edges":[{"node":{"name":"New
- Layer"}}]}},{"id":"MDExOlB1bGxSZXF1ZXN0OTA4ODAzMzQ=","title":"Coercion type
- systems","body":"Introducing switchable type coercion systems for Hashie.
- Follows up on #239.\n\nAdds ''dry-types'' and ''activemodel'' alongside Hashie''s
- builtin coercion system. Basic usage is written up in the README.\n\nFor the
- most part, reading the source should be straight forward. The ''coercion''
- folder under ''extensions'' contains the implementation of the 3 coercion
- systems. The `Hashie::Extensions::Coercion` module was split into two files.
- The file itself contains the interface and common coercion methods, while
- the `Coercion::HashieTypes` class now contains the actual coercion implementation.\n\nThe
- only confusing part is the `CoercionSystemIncludeBuilder` defined under `Hashie::Extensions::Coercion`.
- The purpose of this class is to DRY up the included hooks for `Hashie::Extensions::Coercion`
- and `Hashie::Extensions::Dash::Coercion`. The common includes are defined
- once, and reused in the default `included` method and the `active_model` and
- `dry_types` methods on both the default and Dash coercion classes. The `active_model`
- and `dry_types` methods on `Hashie::Extensions::Coercion` and `Hashie::Extensions::Dash::Coercion`
- both return an anonymous module with an `included` method correctly defined,
- which then is immediately executed because it then included. \n\nExample:
- \n\n``` ruby\nmod = Hashie::Extensions::Coercion.dry_types\n# => \n\nmod.methods\n#=> [:included]\n\nclass MyHash < Hashie::Hash\n include
- mod\nend\n#=> Hashie::Extensions::Coercion::ClassMethods, Hashie::Extensions::Coercion::InstanceMethods,
- and Hashie::Extensions::Coercion::DryTypes are all mixed into MyHash\n```\n\nThis
- is 100% backwards compatible and all the tests pass. I did not add any additional
- tests - we should not need many as the new coercion systems are well tested
- in their own repos. We may want to add a few tests though.\n","url":"https://github.com/intridea/hashie/pull/379","createdAt":"2016-10-25T19:59:18Z","labels":{"edges":[{"node":{"name":"new
- feature"}}]}}]}}}}'
- http_version:
- recorded_at: Fri, 13 Sep 2019 20:08:23 GMT
-recorded_with: VCR 5.0.0
diff --git a/spec/vcr/User/_register/an_unregistered_user_has_an_email_and_has_agreed_to_terms/persists_the_registered_state.yml b/spec/vcr/User/_register/an_unregistered_user_has_an_email_and_has_agreed_to_terms/persists_the_registered_state.yml
deleted file mode 100644
index 803efcb54..000000000
--- a/spec/vcr/User/_register/an_unregistered_user_has_an_email_and_has_agreed_to_terms/persists_the_registered_state.yml
+++ /dev/null
@@ -1,165 +0,0 @@
----
-http_interactions:
-- request:
- method: post
- uri: https://api.github.com/graphql
- body:
- encoding: UTF-8
- string: '{"query":"query($username:String!) {\n user(login: $username) {\n pullRequests(states:
- OPEN last: 100) {\n nodes {\n id\n title\n body\n url\n createdAt\n labels(first:
- 100) {\n edges {\n node {\n name\n }\n }\n }\n }\n }\n }\n}\n","variables":{"username":"mkcode"}}'
- headers:
- User-Agent:
- - Faraday v0.12.2
- Authorization:
- - bearer
- Content-Type:
- - application/json
- Accept-Encoding:
- - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
- Accept:
- - "*/*"
- response:
- status:
- code: 200
- message: OK
- headers:
- Date:
- - Fri, 13 Sep 2019 19:58:03 GMT
- Content-Type:
- - application/json; charset=utf-8
- Transfer-Encoding:
- - chunked
- Server:
- - GitHub.com
- Status:
- - 200 OK
- Cache-Control:
- - no-cache
- X-Oauth-Scopes:
- - user:email
- X-Accepted-Oauth-Scopes:
- - repo
- X-Github-Media-Type:
- - github.v4; format=json
- X-Ratelimit-Limit:
- - '5000'
- X-Ratelimit-Remaining:
- - '4970'
- X-Ratelimit-Reset:
- - '1568408095'
- Access-Control-Expose-Headers:
- - ETag, Link, Location, Retry-After, X-GitHub-OTP, X-RateLimit-Limit, X-RateLimit-Remaining,
- X-RateLimit-Reset, X-OAuth-Scopes, X-Accepted-OAuth-Scopes, X-Poll-Interval,
- X-GitHub-Media-Type
- Access-Control-Allow-Origin:
- - "*"
- Strict-Transport-Security:
- - max-age=31536000; includeSubdomains; preload
- X-Frame-Options:
- - deny
- X-Content-Type-Options:
- - nosniff
- X-Xss-Protection:
- - 1; mode=block
- Referrer-Policy:
- - origin-when-cross-origin, strict-origin-when-cross-origin
- Content-Security-Policy:
- - default-src 'none'
- Vary:
- - Accept-Encoding
- X-Github-Request-Id:
- - 2E69:75CE:225404:3C627A:5D7BF4CA
- body:
- encoding: ASCII-8BIT
- string: '{"data":{"user":{"pullRequests":{"nodes":[{"id":"MDExOlB1bGxSZXF1ZXN0NTc5MDc4Mg==","title":"Upgraded
- to rails 3.2 stable","body":"Hi, I''m using this app as template for a new
- project. Wanted to get on rails 3.2 stable before I started. Here it is!\n\nCheers\n","url":"https://github.com/maccman/spine.rails3/pull/6","createdAt":"2013-05-17T23:05:41Z","labels":{"edges":[]}},{"id":"MDExOlB1bGxSZXF1ZXN0NDcxMDUxNzU=","title":"Delete
- repos cleanup","body":"@PeterDaveHello - Thanks for your contribution. I''m
- using this work as an opportunity to clean up how we are doing testing in
- this app. I see that you basically copied the format from the create_repos
- spec - which was a good move.\n\nAfter reworking this so I can understand
- what is happening in https://github.com/education/teachers_pet/commit/be8a8b1ddb3a8ef79a88f53f6bd05649417f0515,
- I notice that we are not stubbing any repo deletion requests - which then
- therefore would mean that these tests aren''t actually sending any API requests.\n\n@PeterDaveHello
- - these tests should be hitting a delete repo endpoint on the GitHub API,
- should they not? Can we rework them so that they do? These tests should fail
- in the case the we comment out the `teachers_pet(:delete_repos)`... block.\n\n/cc
- @johndbritton \n","url":"https://github.com/education/teachers_pet/pull/126","createdAt":"2015-10-08T02:24:19Z","labels":{"edges":[]}},{"id":"MDExOlB1bGxSZXF1ZXN0NDc0Nzk5ODQ=","title":"Results
- by cookie","body":"Hi @deski - Following up on our discussion in #78 \n\nThis
- PR adds info from the peek cookie as discussed. It does not save Peek results
- unless the peek cookie is enabled. Always sets the cookie if peek is enabled.\n\nIn
- the case Peek was not enabled for a request, and is toggled on, `Peek::Views`
- with a `data-defer-to` are hidden and a refresh message is displayed: \n\n![screen
- shot 2015-10-12 at 8 41 31 pm](https://cloud.githubusercontent.com/assets/283496/10442611/22bb6a2e-7122-11e5-8fb3-c3fb5ed333b7.png)\n","url":"https://github.com/peek/peek/pull/79","createdAt":"2015-10-13T00:46:43Z","labels":{"edges":[]}},{"id":"MDExOlB1bGxSZXF1ZXN0NTE0MTg4ODg=","title":"Update
- README.md","body":"Add maintenance note to readme\n","url":"https://github.com/vulume/Cordova-DBCamera/pull/1","createdAt":"2015-11-20T22:49:53Z","labels":{"edges":[]}},{"id":"MDExOlB1bGxSZXF1ZXN0NjkyNjE4Mjk=","title":"Add
- natural layer","body":"Adds the beginnings of a prose layer.\n\nReplaces #5403
- according to the discussion in #5996.\n","url":"https://github.com/syl20bnr/spacemacs/pull/6012","createdAt":"2016-05-08T06:24:38Z","labels":{"edges":[{"node":{"name":"New
- Layer"}}]}},{"id":"MDExOlB1bGxSZXF1ZXN0OTA4ODAzMzQ=","title":"Coercion type
- systems","body":"Introducing switchable type coercion systems for Hashie.
- Follows up on #239.\n\nAdds ''dry-types'' and ''activemodel'' alongside Hashie''s
- builtin coercion system. Basic usage is written up in the README.\n\nFor the
- most part, reading the source should be straight forward. The ''coercion''
- folder under ''extensions'' contains the implementation of the 3 coercion
- systems. The `Hashie::Extensions::Coercion` module was split into two files.
- The file itself contains the interface and common coercion methods, while
- the `Coercion::HashieTypes` class now contains the actual coercion implementation.\n\nThe
- only confusing part is the `CoercionSystemIncludeBuilder` defined under `Hashie::Extensions::Coercion`.
- The purpose of this class is to DRY up the included hooks for `Hashie::Extensions::Coercion`
- and `Hashie::Extensions::Dash::Coercion`. The common includes are defined
- once, and reused in the default `included` method and the `active_model` and
- `dry_types` methods on both the default and Dash coercion classes. The `active_model`
- and `dry_types` methods on `Hashie::Extensions::Coercion` and `Hashie::Extensions::Dash::Coercion`
- both return an anonymous module with an `included` method correctly defined,
- which then is immediately executed because it then included. \n\nExample:
- \n\n``` ruby\nmod = Hashie::Extensions::Coercion.dry_types\n# => \n\nmod.methods\n#=> [:included]\n\nclass MyHash < Hashie::Hash\n include
- mod\nend\n#=> Hashie::Extensions::Coercion::ClassMethods, Hashie::Extensions::Coercion::InstanceMethods,
- and Hashie::Extensions::Coercion::DryTypes are all mixed into MyHash\n```\n\nThis
- is 100% backwards compatible and all the tests pass. I did not add any additional
- tests - we should not need many as the new coercion systems are well tested
- in their own repos. We may want to add a few tests though.\n","url":"https://github.com/intridea/hashie/pull/379","createdAt":"2016-10-25T19:59:18Z","labels":{"edges":[{"node":{"name":"new
- feature"}}]}}]}}}}'
- http_version:
- recorded_at: Fri, 13 Sep 2019 19:58:03 GMT
-- request:
- method: post
- uri: https://api.segment.io/v1/import
- body:
- encoding: UTF-8
- string: '{"sentAt":"2019-09-16T10:44:52.989-04:00","batch":[{"userId":1,"anonymousId":null,"integrations":null,"context":{"library":{"name":"analytics-ruby","version":"2.0.13"}},"traits":{},"options":null,"timestamp":"2019-09-16T10:44:52.989-04:00","type":"identify","messageId":"c8066c8c-1f26-4ebf-a9be-444c9eded660"}]}'
- headers:
- Content-Type:
- - application/json
- Accept:
- - application/json
- Accept-Encoding:
- - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
- User-Agent:
- - Ruby
- Authorization:
- - Basic NWw3czVyTVl0T3doWUNZMDBTcnIzMTYzWkZmR2N5ZVQ6
- response:
- status:
- code: 200
- message: OK
- headers:
- Date:
- - Mon, 16 Sep 2019 14:44:53 GMT
- Content-Type:
- - application/json
- Content-Length:
- - '21'
- Connection:
- - keep-alive
- Vary:
- - Origin
- body:
- encoding: UTF-8
- string: |-
- {
- "success": true
- }
- http_version:
- recorded_at: Mon, 16 Sep 2019 14:44:53 GMT
-recorded_with: VCR 5.0.0
diff --git a/spec/vcr/User/_register/user_has_neither_an_email_nor_an_agreement/adds_the_correct_errors_to_the_user.yml b/spec/vcr/User/_register/user_has_neither_an_email_nor_an_agreement/adds_the_correct_errors_to_the_user.yml
deleted file mode 100644
index 041f84134..000000000
--- a/spec/vcr/User/_register/user_has_neither_an_email_nor_an_agreement/adds_the_correct_errors_to_the_user.yml
+++ /dev/null
@@ -1,125 +0,0 @@
----
-http_interactions:
-- request:
- method: post
- uri: https://api.github.com/graphql
- body:
- encoding: UTF-8
- string: '{"query":"query($username:String!) {\n user(login: $username) {\n pullRequests(states:
- OPEN last: 100) {\n nodes {\n id\n title\n body\n url\n createdAt\n labels(first:
- 100) {\n edges {\n node {\n name\n }\n }\n }\n }\n }\n }\n}\n","variables":{"username":"mkcode"}}'
- headers:
- User-Agent:
- - Faraday v0.12.2
- Authorization:
- - bearer
- Content-Type:
- - application/json
- Accept-Encoding:
- - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
- Accept:
- - "*/*"
- response:
- status:
- code: 200
- message: OK
- headers:
- Date:
- - Fri, 13 Sep 2019 19:58:02 GMT
- Content-Type:
- - application/json; charset=utf-8
- Transfer-Encoding:
- - chunked
- Server:
- - GitHub.com
- Status:
- - 200 OK
- Cache-Control:
- - no-cache
- X-Oauth-Scopes:
- - user:email
- X-Accepted-Oauth-Scopes:
- - repo
- X-Github-Media-Type:
- - github.v4; format=json
- X-Ratelimit-Limit:
- - '5000'
- X-Ratelimit-Remaining:
- - '4972'
- X-Ratelimit-Reset:
- - '1568408095'
- Access-Control-Expose-Headers:
- - ETag, Link, Location, Retry-After, X-GitHub-OTP, X-RateLimit-Limit, X-RateLimit-Remaining,
- X-RateLimit-Reset, X-OAuth-Scopes, X-Accepted-OAuth-Scopes, X-Poll-Interval,
- X-GitHub-Media-Type
- Access-Control-Allow-Origin:
- - "*"
- Strict-Transport-Security:
- - max-age=31536000; includeSubdomains; preload
- X-Frame-Options:
- - deny
- X-Content-Type-Options:
- - nosniff
- X-Xss-Protection:
- - 1; mode=block
- Referrer-Policy:
- - origin-when-cross-origin, strict-origin-when-cross-origin
- Content-Security-Policy:
- - default-src 'none'
- Vary:
- - Accept-Encoding
- X-Github-Request-Id:
- - 24EB:08C0:2ABB02:474F6F:5D7BF4CA
- body:
- encoding: ASCII-8BIT
- string: '{"data":{"user":{"pullRequests":{"nodes":[{"id":"MDExOlB1bGxSZXF1ZXN0NTc5MDc4Mg==","title":"Upgraded
- to rails 3.2 stable","body":"Hi, I''m using this app as template for a new
- project. Wanted to get on rails 3.2 stable before I started. Here it is!\n\nCheers\n","url":"https://github.com/maccman/spine.rails3/pull/6","createdAt":"2013-05-17T23:05:41Z","labels":{"edges":[]}},{"id":"MDExOlB1bGxSZXF1ZXN0NDcxMDUxNzU=","title":"Delete
- repos cleanup","body":"@PeterDaveHello - Thanks for your contribution. I''m
- using this work as an opportunity to clean up how we are doing testing in
- this app. I see that you basically copied the format from the create_repos
- spec - which was a good move.\n\nAfter reworking this so I can understand
- what is happening in https://github.com/education/teachers_pet/commit/be8a8b1ddb3a8ef79a88f53f6bd05649417f0515,
- I notice that we are not stubbing any repo deletion requests - which then
- therefore would mean that these tests aren''t actually sending any API requests.\n\n@PeterDaveHello
- - these tests should be hitting a delete repo endpoint on the GitHub API,
- should they not? Can we rework them so that they do? These tests should fail
- in the case the we comment out the `teachers_pet(:delete_repos)`... block.\n\n/cc
- @johndbritton \n","url":"https://github.com/education/teachers_pet/pull/126","createdAt":"2015-10-08T02:24:19Z","labels":{"edges":[]}},{"id":"MDExOlB1bGxSZXF1ZXN0NDc0Nzk5ODQ=","title":"Results
- by cookie","body":"Hi @deski - Following up on our discussion in #78 \n\nThis
- PR adds info from the peek cookie as discussed. It does not save Peek results
- unless the peek cookie is enabled. Always sets the cookie if peek is enabled.\n\nIn
- the case Peek was not enabled for a request, and is toggled on, `Peek::Views`
- with a `data-defer-to` are hidden and a refresh message is displayed: \n\n![screen
- shot 2015-10-12 at 8 41 31 pm](https://cloud.githubusercontent.com/assets/283496/10442611/22bb6a2e-7122-11e5-8fb3-c3fb5ed333b7.png)\n","url":"https://github.com/peek/peek/pull/79","createdAt":"2015-10-13T00:46:43Z","labels":{"edges":[]}},{"id":"MDExOlB1bGxSZXF1ZXN0NTE0MTg4ODg=","title":"Update
- README.md","body":"Add maintenance note to readme\n","url":"https://github.com/vulume/Cordova-DBCamera/pull/1","createdAt":"2015-11-20T22:49:53Z","labels":{"edges":[]}},{"id":"MDExOlB1bGxSZXF1ZXN0NjkyNjE4Mjk=","title":"Add
- natural layer","body":"Adds the beginnings of a prose layer.\n\nReplaces #5403
- according to the discussion in #5996.\n","url":"https://github.com/syl20bnr/spacemacs/pull/6012","createdAt":"2016-05-08T06:24:38Z","labels":{"edges":[{"node":{"name":"New
- Layer"}}]}},{"id":"MDExOlB1bGxSZXF1ZXN0OTA4ODAzMzQ=","title":"Coercion type
- systems","body":"Introducing switchable type coercion systems for Hashie.
- Follows up on #239.\n\nAdds ''dry-types'' and ''activemodel'' alongside Hashie''s
- builtin coercion system. Basic usage is written up in the README.\n\nFor the
- most part, reading the source should be straight forward. The ''coercion''
- folder under ''extensions'' contains the implementation of the 3 coercion
- systems. The `Hashie::Extensions::Coercion` module was split into two files.
- The file itself contains the interface and common coercion methods, while
- the `Coercion::HashieTypes` class now contains the actual coercion implementation.\n\nThe
- only confusing part is the `CoercionSystemIncludeBuilder` defined under `Hashie::Extensions::Coercion`.
- The purpose of this class is to DRY up the included hooks for `Hashie::Extensions::Coercion`
- and `Hashie::Extensions::Dash::Coercion`. The common includes are defined
- once, and reused in the default `included` method and the `active_model` and
- `dry_types` methods on both the default and Dash coercion classes. The `active_model`
- and `dry_types` methods on `Hashie::Extensions::Coercion` and `Hashie::Extensions::Dash::Coercion`
- both return an anonymous module with an `included` method correctly defined,
- which then is immediately executed because it then included. \n\nExample:
- \n\n``` ruby\nmod = Hashie::Extensions::Coercion.dry_types\n# => \n\nmod.methods\n#=> [:included]\n\nclass MyHash < Hashie::Hash\n include
- mod\nend\n#=> Hashie::Extensions::Coercion::ClassMethods, Hashie::Extensions::Coercion::InstanceMethods,
- and Hashie::Extensions::Coercion::DryTypes are all mixed into MyHash\n```\n\nThis
- is 100% backwards compatible and all the tests pass. I did not add any additional
- tests - we should not need many as the new coercion systems are well tested
- in their own repos. We may want to add a few tests though.\n","url":"https://github.com/intridea/hashie/pull/379","createdAt":"2016-10-25T19:59:18Z","labels":{"edges":[{"node":{"name":"new
- feature"}}]}}]}}}}'
- http_version:
- recorded_at: Fri, 13 Sep 2019 19:58:02 GMT
-recorded_with: VCR 5.0.0
diff --git a/spec/vcr/User/_register/user_has_neither_an_email_nor_an_agreement/adds_the_correct_errors_to_the_user_object.yml b/spec/vcr/User/_register/user_has_neither_an_email_nor_an_agreement/adds_the_correct_errors_to_the_user_object.yml
deleted file mode 100644
index 7e84af219..000000000
--- a/spec/vcr/User/_register/user_has_neither_an_email_nor_an_agreement/adds_the_correct_errors_to_the_user_object.yml
+++ /dev/null
@@ -1,165 +0,0 @@
----
-http_interactions:
-- request:
- method: post
- uri: https://api.segment.io/v1/import
- body:
- encoding: UTF-8
- string: '{"sentAt":"2019-09-16T18:18:58.126-04:00","batch":[{"userId":2609,"anonymousId":null,"integrations":null,"context":{"library":{"name":"analytics-ruby","version":"2.0.13"}},"traits":{},"options":null,"timestamp":"2019-09-16T18:18:58.125-04:00","type":"identify","messageId":"15a97124-4966-415d-a649-5c5185c418e0"}]}'
- headers:
- Content-Type:
- - application/json
- Accept:
- - application/json
- Accept-Encoding:
- - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
- User-Agent:
- - Ruby
- Authorization:
- - Basic NWw3czVyTVl0T3doWUNZMDBTcnIzMTYzWkZmR2N5ZVQ6
- response:
- status:
- code: 200
- message: OK
- headers:
- Date:
- - Mon, 16 Sep 2019 22:18:58 GMT
- Content-Type:
- - application/json
- Content-Length:
- - '21'
- Connection:
- - keep-alive
- Vary:
- - Origin
- body:
- encoding: UTF-8
- string: |-
- {
- "success": true
- }
- http_version:
- recorded_at: Mon, 16 Sep 2019 22:18:58 GMT
-- request:
- method: post
- uri: https://api.github.com/graphql
- body:
- encoding: UTF-8
- string: '{"query":"query($username:String!) {\n user(login: $username) {\n pullRequests(states:
- OPEN last: 100) {\n nodes {\n id\n title\n body\n url\n createdAt\n labels(first:
- 100) {\n edges {\n node {\n name\n }\n }\n }\n }\n }\n }\n}\n","variables":{"username":"mkcode"}}'
- headers:
- User-Agent:
- - Faraday v0.15.4
- Authorization:
- - bearer
- Content-Type:
- - application/json
- Accept-Encoding:
- - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
- Accept:
- - "*/*"
- response:
- status:
- code: 200
- message: OK
- headers:
- Date:
- - Mon, 16 Sep 2019 22:18:58 GMT
- Content-Type:
- - application/json; charset=utf-8
- Transfer-Encoding:
- - chunked
- Server:
- - GitHub.com
- Status:
- - 200 OK
- Cache-Control:
- - no-cache
- X-Oauth-Scopes:
- - admin:public_key
- X-Accepted-Oauth-Scopes:
- - repo
- X-Github-Media-Type:
- - github.v4; format=json
- X-Ratelimit-Limit:
- - '5000'
- X-Ratelimit-Remaining:
- - '4999'
- X-Ratelimit-Reset:
- - '1568675938'
- Access-Control-Expose-Headers:
- - ETag, Link, Location, Retry-After, X-GitHub-OTP, X-RateLimit-Limit, X-RateLimit-Remaining,
- X-RateLimit-Reset, X-OAuth-Scopes, X-Accepted-OAuth-Scopes, X-Poll-Interval,
- X-GitHub-Media-Type
- Access-Control-Allow-Origin:
- - "*"
- Strict-Transport-Security:
- - max-age=31536000; includeSubdomains; preload
- X-Frame-Options:
- - deny
- X-Content-Type-Options:
- - nosniff
- X-Xss-Protection:
- - 1; mode=block
- Referrer-Policy:
- - origin-when-cross-origin, strict-origin-when-cross-origin
- Content-Security-Policy:
- - default-src 'none'
- Vary:
- - Accept-Encoding
- X-Github-Request-Id:
- - E76C:0EFD:908F8:EEE43:5D800A52
- body:
- encoding: ASCII-8BIT
- string: '{"data":{"user":{"pullRequests":{"nodes":[{"id":"MDExOlB1bGxSZXF1ZXN0NTc5MDc4Mg==","title":"Upgraded
- to rails 3.2 stable","body":"Hi, I''m using this app as template for a new
- project. Wanted to get on rails 3.2 stable before I started. Here it is!\n\nCheers\n","url":"https://github.com/maccman/spine.rails3/pull/6","createdAt":"2013-05-17T23:05:41Z","labels":{"edges":[]}},{"id":"MDExOlB1bGxSZXF1ZXN0NDcxMDUxNzU=","title":"Delete
- repos cleanup","body":"@PeterDaveHello - Thanks for your contribution. I''m
- using this work as an opportunity to clean up how we are doing testing in
- this app. I see that you basically copied the format from the create_repos
- spec - which was a good move.\n\nAfter reworking this so I can understand
- what is happening in https://github.com/education/teachers_pet/commit/be8a8b1ddb3a8ef79a88f53f6bd05649417f0515,
- I notice that we are not stubbing any repo deletion requests - which then
- therefore would mean that these tests aren''t actually sending any API requests.\n\n@PeterDaveHello
- - these tests should be hitting a delete repo endpoint on the GitHub API,
- should they not? Can we rework them so that they do? These tests should fail
- in the case the we comment out the `teachers_pet(:delete_repos)`... block.\n\n/cc
- @johndbritton \n","url":"https://github.com/education/teachers_pet/pull/126","createdAt":"2015-10-08T02:24:19Z","labels":{"edges":[]}},{"id":"MDExOlB1bGxSZXF1ZXN0NDc0Nzk5ODQ=","title":"Results
- by cookie","body":"Hi @deski - Following up on our discussion in #78 \n\nThis
- PR adds info from the peek cookie as discussed. It does not save Peek results
- unless the peek cookie is enabled. Always sets the cookie if peek is enabled.\n\nIn
- the case Peek was not enabled for a request, and is toggled on, `Peek::Views`
- with a `data-defer-to` are hidden and a refresh message is displayed: \n\n![screen
- shot 2015-10-12 at 8 41 31 pm](https://cloud.githubusercontent.com/assets/283496/10442611/22bb6a2e-7122-11e5-8fb3-c3fb5ed333b7.png)\n","url":"https://github.com/peek/peek/pull/79","createdAt":"2015-10-13T00:46:43Z","labels":{"edges":[]}},{"id":"MDExOlB1bGxSZXF1ZXN0NTE0MTg4ODg=","title":"Update
- README.md","body":"Add maintenance note to readme\n","url":"https://github.com/vulume/Cordova-DBCamera/pull/1","createdAt":"2015-11-20T22:49:53Z","labels":{"edges":[]}},{"id":"MDExOlB1bGxSZXF1ZXN0NjkyNjE4Mjk=","title":"Add
- natural layer","body":"Adds the beginnings of a prose layer.\n\nReplaces #5403
- according to the discussion in #5996.\n","url":"https://github.com/syl20bnr/spacemacs/pull/6012","createdAt":"2016-05-08T06:24:38Z","labels":{"edges":[{"node":{"name":"New
- Layer"}}]}},{"id":"MDExOlB1bGxSZXF1ZXN0OTA4ODAzMzQ=","title":"Coercion type
- systems","body":"Introducing switchable type coercion systems for Hashie.
- Follows up on #239.\n\nAdds ''dry-types'' and ''activemodel'' alongside Hashie''s
- builtin coercion system. Basic usage is written up in the README.\n\nFor the
- most part, reading the source should be straight forward. The ''coercion''
- folder under ''extensions'' contains the implementation of the 3 coercion
- systems. The `Hashie::Extensions::Coercion` module was split into two files.
- The file itself contains the interface and common coercion methods, while
- the `Coercion::HashieTypes` class now contains the actual coercion implementation.\n\nThe
- only confusing part is the `CoercionSystemIncludeBuilder` defined under `Hashie::Extensions::Coercion`.
- The purpose of this class is to DRY up the included hooks for `Hashie::Extensions::Coercion`
- and `Hashie::Extensions::Dash::Coercion`. The common includes are defined
- once, and reused in the default `included` method and the `active_model` and
- `dry_types` methods on both the default and Dash coercion classes. The `active_model`
- and `dry_types` methods on `Hashie::Extensions::Coercion` and `Hashie::Extensions::Dash::Coercion`
- both return an anonymous module with an `included` method correctly defined,
- which then is immediately executed because it then included. \n\nExample:
- \n\n``` ruby\nmod = Hashie::Extensions::Coercion.dry_types\n# => \n\nmod.methods\n#=> [:included]\n\nclass MyHash < Hashie::Hash\n include
- mod\nend\n#=> Hashie::Extensions::Coercion::ClassMethods, Hashie::Extensions::Coercion::InstanceMethods,
- and Hashie::Extensions::Coercion::DryTypes are all mixed into MyHash\n```\n\nThis
- is 100% backwards compatible and all the tests pass. I did not add any additional
- tests - we should not need many as the new coercion systems are well tested
- in their own repos. We may want to add a few tests though.\n","url":"https://github.com/intridea/hashie/pull/379","createdAt":"2016-10-25T19:59:18Z","labels":{"edges":[{"node":{"name":"new
- feature"}}]}}]}}}}'
- http_version:
- recorded_at: Mon, 16 Sep 2019 22:18:58 GMT
-recorded_with: VCR 5.0.0
diff --git a/spec/vcr/User/_register/user_has_neither_an_email_nor_an_agreement/adds_the_correct_errors_to_user.yml b/spec/vcr/User/_register/user_has_neither_an_email_nor_an_agreement/adds_the_correct_errors_to_user.yml
deleted file mode 100644
index b870f0d1f..000000000
--- a/spec/vcr/User/_register/user_has_neither_an_email_nor_an_agreement/adds_the_correct_errors_to_user.yml
+++ /dev/null
@@ -1,203 +0,0 @@
----
-http_interactions:
-- request:
- method: post
- uri: https://api.segment.io/v1/import
- body:
- encoding: UTF-8
- string: '{"sentAt":"2019-09-13T16:08:22.940-04:00","batch":[{"userId":1,"anonymousId":null,"integrations":null,"context":{"library":{"name":"analytics-ruby","version":"2.0.13"}},"traits":{"pull_requests_count":0},"options":null,"timestamp":"2019-09-13T16:08:22.725-04:00","type":"identify","messageId":"08e1a9c6-e895-4178-abd7-fbd6377871e3"},{"userId":1,"anonymousId":null,"integrations":null,"context":{"library":{"name":"analytics-ruby","version":"2.0.13"}},"traits":{"email":null,"marketing_emails":false,"state":"register"},"options":null,"timestamp":"2019-09-13T16:08:22.725-04:00","type":"identify","messageId":"04e4003f-ebab-4db9-8fc6-3d462bb137a5"},{"event":"register","userId":1,"anonymousId":null,"context":{"library":{"name":"analytics-ruby","version":"2.0.13"}},"options":null,"integrations":null,"properties":{},"timestamp":"2019-09-13T16:08:22.725-04:00","type":"track","messageId":"a610d335-53b2-4540-9834-25d47c625694"}]}'
- headers:
- Content-Type:
- - application/json
- Accept:
- - application/json
- Accept-Encoding:
- - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
- User-Agent:
- - Ruby
- Authorization:
- - Basic NWw3czVyTVl0T3doWUNZMDBTcnIzMTYzWkZmR2N5ZVQ6
- response:
- status:
- code: 200
- message: OK
- headers:
- Date:
- - Fri, 13 Sep 2019 20:08:23 GMT
- Content-Type:
- - application/json
- Content-Length:
- - '21'
- Connection:
- - keep-alive
- Vary:
- - Origin
- body:
- encoding: UTF-8
- string: |-
- {
- "success": true
- }
- http_version:
- recorded_at: Fri, 13 Sep 2019 20:08:23 GMT
-- request:
- method: post
- uri: https://api.github.com/graphql
- body:
- encoding: UTF-8
- string: '{"query":"query($username:String!) {\n user(login: $username) {\n pullRequests(states:
- OPEN last: 100) {\n nodes {\n id\n title\n body\n url\n createdAt\n labels(first:
- 100) {\n edges {\n node {\n name\n }\n }\n }\n }\n }\n }\n}\n","variables":{"username":"mkcode"}}'
- headers:
- User-Agent:
- - Faraday v0.12.2
- Authorization:
- - bearer
- Content-Type:
- - application/json
- Accept-Encoding:
- - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
- Accept:
- - "*/*"
- response:
- status:
- code: 200
- message: OK
- headers:
- Server:
- - GitHub.com
- Date:
- - Fri, 13 Sep 2019 20:08:23 GMT
- Content-Type:
- - application/json; charset=utf-8
- Transfer-Encoding:
- - chunked
- Status:
- - 200 OK
- Cache-Control:
- - no-cache
- X-Oauth-Scopes:
- - user:email
- X-Accepted-Oauth-Scopes:
- - repo
- X-Github-Media-Type:
- - github.v4; format=json
- X-Ratelimit-Limit:
- - '5000'
- X-Ratelimit-Remaining:
- - '4950'
- X-Ratelimit-Reset:
- - '1568408901'
- Access-Control-Expose-Headers:
- - ETag, Link, Location, Retry-After, X-GitHub-OTP, X-RateLimit-Limit, X-RateLimit-Remaining,
- X-RateLimit-Reset, X-OAuth-Scopes, X-Accepted-OAuth-Scopes, X-Poll-Interval,
- X-GitHub-Media-Type
- Access-Control-Allow-Origin:
- - "*"
- Strict-Transport-Security:
- - max-age=31536000; includeSubdomains; preload
- X-Frame-Options:
- - deny
- X-Content-Type-Options:
- - nosniff
- X-Xss-Protection:
- - 1; mode=block
- Referrer-Policy:
- - origin-when-cross-origin, strict-origin-when-cross-origin
- Content-Security-Policy:
- - default-src 'none'
- X-Github-Request-Id:
- - 0E0B:284F:A38270:139B6CC:5D7BF737
- body:
- encoding: ASCII-8BIT
- string: '{"data":{"user":{"pullRequests":{"nodes":[{"id":"MDExOlB1bGxSZXF1ZXN0NTc5MDc4Mg==","title":"Upgraded
- to rails 3.2 stable","body":"Hi, I''m using this app as template for a new
- project. Wanted to get on rails 3.2 stable before I started. Here it is!\n\nCheers\n","url":"https://github.com/maccman/spine.rails3/pull/6","createdAt":"2013-05-17T23:05:41Z","labels":{"edges":[]}},{"id":"MDExOlB1bGxSZXF1ZXN0NDcxMDUxNzU=","title":"Delete
- repos cleanup","body":"@PeterDaveHello - Thanks for your contribution. I''m
- using this work as an opportunity to clean up how we are doing testing in
- this app. I see that you basically copied the format from the create_repos
- spec - which was a good move.\n\nAfter reworking this so I can understand
- what is happening in https://github.com/education/teachers_pet/commit/be8a8b1ddb3a8ef79a88f53f6bd05649417f0515,
- I notice that we are not stubbing any repo deletion requests - which then
- therefore would mean that these tests aren''t actually sending any API requests.\n\n@PeterDaveHello
- - these tests should be hitting a delete repo endpoint on the GitHub API,
- should they not? Can we rework them so that they do? These tests should fail
- in the case the we comment out the `teachers_pet(:delete_repos)`... block.\n\n/cc
- @johndbritton \n","url":"https://github.com/education/teachers_pet/pull/126","createdAt":"2015-10-08T02:24:19Z","labels":{"edges":[]}},{"id":"MDExOlB1bGxSZXF1ZXN0NDc0Nzk5ODQ=","title":"Results
- by cookie","body":"Hi @deski - Following up on our discussion in #78 \n\nThis
- PR adds info from the peek cookie as discussed. It does not save Peek results
- unless the peek cookie is enabled. Always sets the cookie if peek is enabled.\n\nIn
- the case Peek was not enabled for a request, and is toggled on, `Peek::Views`
- with a `data-defer-to` are hidden and a refresh message is displayed: \n\n![screen
- shot 2015-10-12 at 8 41 31 pm](https://cloud.githubusercontent.com/assets/283496/10442611/22bb6a2e-7122-11e5-8fb3-c3fb5ed333b7.png)\n","url":"https://github.com/peek/peek/pull/79","createdAt":"2015-10-13T00:46:43Z","labels":{"edges":[]}},{"id":"MDExOlB1bGxSZXF1ZXN0NTE0MTg4ODg=","title":"Update
- README.md","body":"Add maintenance note to readme\n","url":"https://github.com/vulume/Cordova-DBCamera/pull/1","createdAt":"2015-11-20T22:49:53Z","labels":{"edges":[]}},{"id":"MDExOlB1bGxSZXF1ZXN0NjkyNjE4Mjk=","title":"Add
- natural layer","body":"Adds the beginnings of a prose layer.\n\nReplaces #5403
- according to the discussion in #5996.\n","url":"https://github.com/syl20bnr/spacemacs/pull/6012","createdAt":"2016-05-08T06:24:38Z","labels":{"edges":[{"node":{"name":"New
- Layer"}}]}},{"id":"MDExOlB1bGxSZXF1ZXN0OTA4ODAzMzQ=","title":"Coercion type
- systems","body":"Introducing switchable type coercion systems for Hashie.
- Follows up on #239.\n\nAdds ''dry-types'' and ''activemodel'' alongside Hashie''s
- builtin coercion system. Basic usage is written up in the README.\n\nFor the
- most part, reading the source should be straight forward. The ''coercion''
- folder under ''extensions'' contains the implementation of the 3 coercion
- systems. The `Hashie::Extensions::Coercion` module was split into two files.
- The file itself contains the interface and common coercion methods, while
- the `Coercion::HashieTypes` class now contains the actual coercion implementation.\n\nThe
- only confusing part is the `CoercionSystemIncludeBuilder` defined under `Hashie::Extensions::Coercion`.
- The purpose of this class is to DRY up the included hooks for `Hashie::Extensions::Coercion`
- and `Hashie::Extensions::Dash::Coercion`. The common includes are defined
- once, and reused in the default `included` method and the `active_model` and
- `dry_types` methods on both the default and Dash coercion classes. The `active_model`
- and `dry_types` methods on `Hashie::Extensions::Coercion` and `Hashie::Extensions::Dash::Coercion`
- both return an anonymous module with an `included` method correctly defined,
- which then is immediately executed because it then included. \n\nExample:
- \n\n``` ruby\nmod = Hashie::Extensions::Coercion.dry_types\n# => \n\nmod.methods\n#=> [:included]\n\nclass MyHash < Hashie::Hash\n include
- mod\nend\n#=> Hashie::Extensions::Coercion::ClassMethods, Hashie::Extensions::Coercion::InstanceMethods,
- and Hashie::Extensions::Coercion::DryTypes are all mixed into MyHash\n```\n\nThis
- is 100% backwards compatible and all the tests pass. I did not add any additional
- tests - we should not need many as the new coercion systems are well tested
- in their own repos. We may want to add a few tests though.\n","url":"https://github.com/intridea/hashie/pull/379","createdAt":"2016-10-25T19:59:18Z","labels":{"edges":[{"node":{"name":"new
- feature"}}]}}]}}}}'
- http_version:
- recorded_at: Fri, 13 Sep 2019 20:08:23 GMT
-- request:
- method: post
- uri: https://api.segment.io/v1/import
- body:
- encoding: UTF-8
- string: '{"sentAt":"2019-09-13T16:13:40.629-04:00","batch":[{"userId":1,"anonymousId":null,"integrations":null,"context":{"library":{"name":"analytics-ruby","version":"2.0.13"}},"traits":{},"options":null,"timestamp":"2019-09-13T16:13:40.629-04:00","type":"identify","messageId":"8a201747-1a7f-4d9c-b14c-2c9f2ccc109b"}]}'
- headers:
- Content-Type:
- - application/json
- Accept:
- - application/json
- Accept-Encoding:
- - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
- User-Agent:
- - Ruby
- Authorization:
- - Basic NWw3czVyTVl0T3doWUNZMDBTcnIzMTYzWkZmR2N5ZVQ6
- response:
- status:
- code: 200
- message: OK
- headers:
- Date:
- - Fri, 13 Sep 2019 20:13:40 GMT
- Content-Type:
- - application/json
- Content-Length:
- - '21'
- Connection:
- - keep-alive
- Vary:
- - Origin
- body:
- encoding: UTF-8
- string: |-
- {
- "success": true
- }
- http_version:
- recorded_at: Fri, 13 Sep 2019 20:13:41 GMT
-recorded_with: VCR 5.0.0
diff --git a/spec/vcr/User/_register/user_has_neither_an_email_nor_an_agreement/can_t_enter_the_registered_state.yml b/spec/vcr/User/_register/user_has_neither_an_email_nor_an_agreement/can_t_enter_the_registered_state.yml
deleted file mode 100644
index 036fbfe28..000000000
--- a/spec/vcr/User/_register/user_has_neither_an_email_nor_an_agreement/can_t_enter_the_registered_state.yml
+++ /dev/null
@@ -1,163 +0,0 @@
----
-http_interactions:
-- request:
- method: post
- uri: https://api.segment.io/v1/import
- body:
- encoding: UTF-8
- string: '{"sentAt":"2019-09-13T16:08:22.564-04:00","batch":[{"userId":1,"anonymousId":null,"integrations":null,"context":{"library":{"name":"analytics-ruby","version":"2.0.13"}},"traits":{"pull_requests_count":0},"options":null,"timestamp":"2019-09-13T16:08:22.473-04:00","type":"identify","messageId":"8f862cc2-6550-41f5-bd01-4c39c7079aa2"},{"userId":1,"anonymousId":null,"integrations":null,"context":{"library":{"name":"analytics-ruby","version":"2.0.13"}},"traits":{"email":null,"marketing_emails":false,"state":"register"},"options":null,"timestamp":"2019-09-13T16:08:22.474-04:00","type":"identify","messageId":"5081c641-641f-4c9b-bf15-73491f6ac2dd"},{"event":"register","userId":1,"anonymousId":null,"context":{"library":{"name":"analytics-ruby","version":"2.0.13"}},"options":null,"integrations":null,"properties":{},"timestamp":"2019-09-13T16:08:22.474-04:00","type":"track","messageId":"c53afcbe-1796-440f-8dea-2aef97077062"}]}'
- headers:
- Content-Type:
- - application/json
- Accept:
- - application/json
- Accept-Encoding:
- - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
- User-Agent:
- - Ruby
- Authorization:
- - Basic NWw3czVyTVl0T3doWUNZMDBTcnIzMTYzWkZmR2N5ZVQ6
- response:
- status:
- code: 200
- message: OK
- headers:
- Date:
- - Fri, 13 Sep 2019 20:08:22 GMT
- Content-Type:
- - application/json
- Content-Length:
- - '21'
- Connection:
- - keep-alive
- Vary:
- - Origin
- body:
- encoding: UTF-8
- string: |-
- {
- "success": true
- }
- http_version:
- recorded_at: Fri, 13 Sep 2019 20:08:22 GMT
-- request:
- method: post
- uri: https://api.github.com/graphql
- body:
- encoding: UTF-8
- string: '{"query":"query($username:String!) {\n user(login: $username) {\n pullRequests(states:
- OPEN last: 100) {\n nodes {\n id\n title\n body\n url\n createdAt\n labels(first:
- 100) {\n edges {\n node {\n name\n }\n }\n }\n }\n }\n }\n}\n","variables":{"username":"mkcode"}}'
- headers:
- User-Agent:
- - Faraday v0.12.2
- Authorization:
- - bearer
- Content-Type:
- - application/json
- Accept-Encoding:
- - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
- Accept:
- - "*/*"
- response:
- status:
- code: 200
- message: OK
- headers:
- Server:
- - GitHub.com
- Date:
- - Fri, 13 Sep 2019 20:08:23 GMT
- Content-Type:
- - application/json; charset=utf-8
- Transfer-Encoding:
- - chunked
- Status:
- - 200 OK
- Cache-Control:
- - no-cache
- X-Oauth-Scopes:
- - user:email
- X-Accepted-Oauth-Scopes:
- - repo
- X-Github-Media-Type:
- - github.v4; format=json
- X-Ratelimit-Limit:
- - '5000'
- X-Ratelimit-Remaining:
- - '4951'
- X-Ratelimit-Reset:
- - '1568408901'
- Access-Control-Expose-Headers:
- - ETag, Link, Location, Retry-After, X-GitHub-OTP, X-RateLimit-Limit, X-RateLimit-Remaining,
- X-RateLimit-Reset, X-OAuth-Scopes, X-Accepted-OAuth-Scopes, X-Poll-Interval,
- X-GitHub-Media-Type
- Access-Control-Allow-Origin:
- - "*"
- Strict-Transport-Security:
- - max-age=31536000; includeSubdomains; preload
- X-Frame-Options:
- - deny
- X-Content-Type-Options:
- - nosniff
- X-Xss-Protection:
- - 1; mode=block
- Referrer-Policy:
- - origin-when-cross-origin, strict-origin-when-cross-origin
- Content-Security-Policy:
- - default-src 'none'
- X-Github-Request-Id:
- - 3663:4C3E:8593E0:115923A:5D7BF736
- body:
- encoding: ASCII-8BIT
- string: '{"data":{"user":{"pullRequests":{"nodes":[{"id":"MDExOlB1bGxSZXF1ZXN0NTc5MDc4Mg==","title":"Upgraded
- to rails 3.2 stable","body":"Hi, I''m using this app as template for a new
- project. Wanted to get on rails 3.2 stable before I started. Here it is!\n\nCheers\n","url":"https://github.com/maccman/spine.rails3/pull/6","createdAt":"2013-05-17T23:05:41Z","labels":{"edges":[]}},{"id":"MDExOlB1bGxSZXF1ZXN0NDcxMDUxNzU=","title":"Delete
- repos cleanup","body":"@PeterDaveHello - Thanks for your contribution. I''m
- using this work as an opportunity to clean up how we are doing testing in
- this app. I see that you basically copied the format from the create_repos
- spec - which was a good move.\n\nAfter reworking this so I can understand
- what is happening in https://github.com/education/teachers_pet/commit/be8a8b1ddb3a8ef79a88f53f6bd05649417f0515,
- I notice that we are not stubbing any repo deletion requests - which then
- therefore would mean that these tests aren''t actually sending any API requests.\n\n@PeterDaveHello
- - these tests should be hitting a delete repo endpoint on the GitHub API,
- should they not? Can we rework them so that they do? These tests should fail
- in the case the we comment out the `teachers_pet(:delete_repos)`... block.\n\n/cc
- @johndbritton \n","url":"https://github.com/education/teachers_pet/pull/126","createdAt":"2015-10-08T02:24:19Z","labels":{"edges":[]}},{"id":"MDExOlB1bGxSZXF1ZXN0NDc0Nzk5ODQ=","title":"Results
- by cookie","body":"Hi @deski - Following up on our discussion in #78 \n\nThis
- PR adds info from the peek cookie as discussed. It does not save Peek results
- unless the peek cookie is enabled. Always sets the cookie if peek is enabled.\n\nIn
- the case Peek was not enabled for a request, and is toggled on, `Peek::Views`
- with a `data-defer-to` are hidden and a refresh message is displayed: \n\n![screen
- shot 2015-10-12 at 8 41 31 pm](https://cloud.githubusercontent.com/assets/283496/10442611/22bb6a2e-7122-11e5-8fb3-c3fb5ed333b7.png)\n","url":"https://github.com/peek/peek/pull/79","createdAt":"2015-10-13T00:46:43Z","labels":{"edges":[]}},{"id":"MDExOlB1bGxSZXF1ZXN0NTE0MTg4ODg=","title":"Update
- README.md","body":"Add maintenance note to readme\n","url":"https://github.com/vulume/Cordova-DBCamera/pull/1","createdAt":"2015-11-20T22:49:53Z","labels":{"edges":[]}},{"id":"MDExOlB1bGxSZXF1ZXN0NjkyNjE4Mjk=","title":"Add
- natural layer","body":"Adds the beginnings of a prose layer.\n\nReplaces #5403
- according to the discussion in #5996.\n","url":"https://github.com/syl20bnr/spacemacs/pull/6012","createdAt":"2016-05-08T06:24:38Z","labels":{"edges":[{"node":{"name":"New
- Layer"}}]}},{"id":"MDExOlB1bGxSZXF1ZXN0OTA4ODAzMzQ=","title":"Coercion type
- systems","body":"Introducing switchable type coercion systems for Hashie.
- Follows up on #239.\n\nAdds ''dry-types'' and ''activemodel'' alongside Hashie''s
- builtin coercion system. Basic usage is written up in the README.\n\nFor the
- most part, reading the source should be straight forward. The ''coercion''
- folder under ''extensions'' contains the implementation of the 3 coercion
- systems. The `Hashie::Extensions::Coercion` module was split into two files.
- The file itself contains the interface and common coercion methods, while
- the `Coercion::HashieTypes` class now contains the actual coercion implementation.\n\nThe
- only confusing part is the `CoercionSystemIncludeBuilder` defined under `Hashie::Extensions::Coercion`.
- The purpose of this class is to DRY up the included hooks for `Hashie::Extensions::Coercion`
- and `Hashie::Extensions::Dash::Coercion`. The common includes are defined
- once, and reused in the default `included` method and the `active_model` and
- `dry_types` methods on both the default and Dash coercion classes. The `active_model`
- and `dry_types` methods on `Hashie::Extensions::Coercion` and `Hashie::Extensions::Dash::Coercion`
- both return an anonymous module with an `included` method correctly defined,
- which then is immediately executed because it then included. \n\nExample:
- \n\n``` ruby\nmod = Hashie::Extensions::Coercion.dry_types\n# => \n\nmod.methods\n#=> [:included]\n\nclass MyHash < Hashie::Hash\n include
- mod\nend\n#=> Hashie::Extensions::Coercion::ClassMethods, Hashie::Extensions::Coercion::InstanceMethods,
- and Hashie::Extensions::Coercion::DryTypes are all mixed into MyHash\n```\n\nThis
- is 100% backwards compatible and all the tests pass. I did not add any additional
- tests - we should not need many as the new coercion systems are well tested
- in their own repos. We may want to add a few tests though.\n","url":"https://github.com/intridea/hashie/pull/379","createdAt":"2016-10-25T19:59:18Z","labels":{"edges":[{"node":{"name":"new
- feature"}}]}}]}}}}'
- http_version:
- recorded_at: Fri, 13 Sep 2019 20:08:23 GMT
-recorded_with: VCR 5.0.0
diff --git a/spec/vcr/User/_register/user_has_neither_an_email_nor_an_agreement/disallows_the_user_to_enter_the_registered_state.yml b/spec/vcr/User/_register/user_has_neither_an_email_nor_an_agreement/disallows_the_user_to_enter_the_registered_state.yml
deleted file mode 100644
index ac9da3125..000000000
--- a/spec/vcr/User/_register/user_has_neither_an_email_nor_an_agreement/disallows_the_user_to_enter_the_registered_state.yml
+++ /dev/null
@@ -1,125 +0,0 @@
----
-http_interactions:
-- request:
- method: post
- uri: https://api.github.com/graphql
- body:
- encoding: UTF-8
- string: '{"query":"query($username:String!) {\n user(login: $username) {\n pullRequests(states:
- OPEN last: 100) {\n nodes {\n id\n title\n body\n url\n createdAt\n labels(first:
- 100) {\n edges {\n node {\n name\n }\n }\n }\n }\n }\n }\n}\n","variables":{"username":"mkcode"}}'
- headers:
- User-Agent:
- - Faraday v0.12.2
- Authorization:
- - bearer
- Content-Type:
- - application/json
- Accept-Encoding:
- - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
- Accept:
- - "*/*"
- response:
- status:
- code: 200
- message: OK
- headers:
- Date:
- - Fri, 13 Sep 2019 19:58:02 GMT
- Content-Type:
- - application/json; charset=utf-8
- Transfer-Encoding:
- - chunked
- Server:
- - GitHub.com
- Status:
- - 200 OK
- Cache-Control:
- - no-cache
- X-Oauth-Scopes:
- - user:email
- X-Accepted-Oauth-Scopes:
- - repo
- X-Github-Media-Type:
- - github.v4; format=json
- X-Ratelimit-Limit:
- - '5000'
- X-Ratelimit-Remaining:
- - '4973'
- X-Ratelimit-Reset:
- - '1568408095'
- Access-Control-Expose-Headers:
- - ETag, Link, Location, Retry-After, X-GitHub-OTP, X-RateLimit-Limit, X-RateLimit-Remaining,
- X-RateLimit-Reset, X-OAuth-Scopes, X-Accepted-OAuth-Scopes, X-Poll-Interval,
- X-GitHub-Media-Type
- Access-Control-Allow-Origin:
- - "*"
- Strict-Transport-Security:
- - max-age=31536000; includeSubdomains; preload
- X-Frame-Options:
- - deny
- X-Content-Type-Options:
- - nosniff
- X-Xss-Protection:
- - 1; mode=block
- Referrer-Policy:
- - origin-when-cross-origin, strict-origin-when-cross-origin
- Content-Security-Policy:
- - default-src 'none'
- Vary:
- - Accept-Encoding
- X-Github-Request-Id:
- - 1801:2F06:107A2D:1CADD8:5D7BF4C9
- body:
- encoding: ASCII-8BIT
- string: '{"data":{"user":{"pullRequests":{"nodes":[{"id":"MDExOlB1bGxSZXF1ZXN0NTc5MDc4Mg==","title":"Upgraded
- to rails 3.2 stable","body":"Hi, I''m using this app as template for a new
- project. Wanted to get on rails 3.2 stable before I started. Here it is!\n\nCheers\n","url":"https://github.com/maccman/spine.rails3/pull/6","createdAt":"2013-05-17T23:05:41Z","labels":{"edges":[]}},{"id":"MDExOlB1bGxSZXF1ZXN0NDcxMDUxNzU=","title":"Delete
- repos cleanup","body":"@PeterDaveHello - Thanks for your contribution. I''m
- using this work as an opportunity to clean up how we are doing testing in
- this app. I see that you basically copied the format from the create_repos
- spec - which was a good move.\n\nAfter reworking this so I can understand
- what is happening in https://github.com/education/teachers_pet/commit/be8a8b1ddb3a8ef79a88f53f6bd05649417f0515,
- I notice that we are not stubbing any repo deletion requests - which then
- therefore would mean that these tests aren''t actually sending any API requests.\n\n@PeterDaveHello
- - these tests should be hitting a delete repo endpoint on the GitHub API,
- should they not? Can we rework them so that they do? These tests should fail
- in the case the we comment out the `teachers_pet(:delete_repos)`... block.\n\n/cc
- @johndbritton \n","url":"https://github.com/education/teachers_pet/pull/126","createdAt":"2015-10-08T02:24:19Z","labels":{"edges":[]}},{"id":"MDExOlB1bGxSZXF1ZXN0NDc0Nzk5ODQ=","title":"Results
- by cookie","body":"Hi @deski - Following up on our discussion in #78 \n\nThis
- PR adds info from the peek cookie as discussed. It does not save Peek results
- unless the peek cookie is enabled. Always sets the cookie if peek is enabled.\n\nIn
- the case Peek was not enabled for a request, and is toggled on, `Peek::Views`
- with a `data-defer-to` are hidden and a refresh message is displayed: \n\n![screen
- shot 2015-10-12 at 8 41 31 pm](https://cloud.githubusercontent.com/assets/283496/10442611/22bb6a2e-7122-11e5-8fb3-c3fb5ed333b7.png)\n","url":"https://github.com/peek/peek/pull/79","createdAt":"2015-10-13T00:46:43Z","labels":{"edges":[]}},{"id":"MDExOlB1bGxSZXF1ZXN0NTE0MTg4ODg=","title":"Update
- README.md","body":"Add maintenance note to readme\n","url":"https://github.com/vulume/Cordova-DBCamera/pull/1","createdAt":"2015-11-20T22:49:53Z","labels":{"edges":[]}},{"id":"MDExOlB1bGxSZXF1ZXN0NjkyNjE4Mjk=","title":"Add
- natural layer","body":"Adds the beginnings of a prose layer.\n\nReplaces #5403
- according to the discussion in #5996.\n","url":"https://github.com/syl20bnr/spacemacs/pull/6012","createdAt":"2016-05-08T06:24:38Z","labels":{"edges":[{"node":{"name":"New
- Layer"}}]}},{"id":"MDExOlB1bGxSZXF1ZXN0OTA4ODAzMzQ=","title":"Coercion type
- systems","body":"Introducing switchable type coercion systems for Hashie.
- Follows up on #239.\n\nAdds ''dry-types'' and ''activemodel'' alongside Hashie''s
- builtin coercion system. Basic usage is written up in the README.\n\nFor the
- most part, reading the source should be straight forward. The ''coercion''
- folder under ''extensions'' contains the implementation of the 3 coercion
- systems. The `Hashie::Extensions::Coercion` module was split into two files.
- The file itself contains the interface and common coercion methods, while
- the `Coercion::HashieTypes` class now contains the actual coercion implementation.\n\nThe
- only confusing part is the `CoercionSystemIncludeBuilder` defined under `Hashie::Extensions::Coercion`.
- The purpose of this class is to DRY up the included hooks for `Hashie::Extensions::Coercion`
- and `Hashie::Extensions::Dash::Coercion`. The common includes are defined
- once, and reused in the default `included` method and the `active_model` and
- `dry_types` methods on both the default and Dash coercion classes. The `active_model`
- and `dry_types` methods on `Hashie::Extensions::Coercion` and `Hashie::Extensions::Dash::Coercion`
- both return an anonymous module with an `included` method correctly defined,
- which then is immediately executed because it then included. \n\nExample:
- \n\n``` ruby\nmod = Hashie::Extensions::Coercion.dry_types\n# => \n\nmod.methods\n#=> [:included]\n\nclass MyHash < Hashie::Hash\n include
- mod\nend\n#=> Hashie::Extensions::Coercion::ClassMethods, Hashie::Extensions::Coercion::InstanceMethods,
- and Hashie::Extensions::Coercion::DryTypes are all mixed into MyHash\n```\n\nThis
- is 100% backwards compatible and all the tests pass. I did not add any additional
- tests - we should not need many as the new coercion systems are well tested
- in their own repos. We may want to add a few tests though.\n","url":"https://github.com/intridea/hashie/pull/379","createdAt":"2016-10-25T19:59:18Z","labels":{"edges":[{"node":{"name":"new
- feature"}}]}}]}}}}'
- http_version:
- recorded_at: Fri, 13 Sep 2019 19:58:02 GMT
-recorded_with: VCR 5.0.0
diff --git a/spec/vcr/User/_register/user_has_no_email/applies_the_correct_errors.yml b/spec/vcr/User/_register/user_has_no_email/applies_the_correct_errors.yml
deleted file mode 100644
index eb00227f2..000000000
--- a/spec/vcr/User/_register/user_has_no_email/applies_the_correct_errors.yml
+++ /dev/null
@@ -1,163 +0,0 @@
----
-http_interactions:
-- request:
- method: post
- uri: https://api.segment.io/v1/import
- body:
- encoding: UTF-8
- string: '{"sentAt":"2019-09-13T16:08:22.193-04:00","batch":[{"userId":1,"anonymousId":null,"integrations":null,"context":{"library":{"name":"analytics-ruby","version":"2.0.13"}},"traits":{"email":"test@mail.com","marketing_emails":false,"state":"register"},"options":null,"timestamp":"2019-09-13T16:08:21.808-04:00","type":"identify","messageId":"b5eb2996-def1-4e90-9086-1a0cdfdab6a3"},{"event":"register","userId":1,"anonymousId":null,"context":{"library":{"name":"analytics-ruby","version":"2.0.13"}},"options":null,"integrations":null,"properties":{},"timestamp":"2019-09-13T16:08:21.808-04:00","type":"track","messageId":"795f0b59-6828-4e82-8acf-c8c347b5aec7"},{"userId":1,"anonymousId":null,"integrations":null,"context":{"library":{"name":"analytics-ruby","version":"2.0.13"}},"traits":{"pull_requests_count":0},"options":null,"timestamp":"2019-09-13T16:08:22.082-04:00","type":"identify","messageId":"5a03f259-fd35-40ce-9082-f9cce70133bf"},{"userId":1,"anonymousId":null,"integrations":null,"context":{"library":{"name":"analytics-ruby","version":"2.0.13"}},"traits":{"email":"test@mail.com","marketing_emails":false,"state":"register"},"options":null,"timestamp":"2019-09-13T16:08:22.082-04:00","type":"identify","messageId":"4ab0fb7b-2510-4a5b-a68f-0a561e3d3741"},{"event":"register","userId":1,"anonymousId":null,"context":{"library":{"name":"analytics-ruby","version":"2.0.13"}},"options":null,"integrations":null,"properties":{},"timestamp":"2019-09-13T16:08:22.082-04:00","type":"track","messageId":"cc256c8b-7f92-406a-af09-fb2b7df62b1c"}]}'
- headers:
- Content-Type:
- - application/json
- Accept:
- - application/json
- Accept-Encoding:
- - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
- User-Agent:
- - Ruby
- Authorization:
- - Basic NWw3czVyTVl0T3doWUNZMDBTcnIzMTYzWkZmR2N5ZVQ6
- response:
- status:
- code: 200
- message: OK
- headers:
- Date:
- - Fri, 13 Sep 2019 20:08:22 GMT
- Content-Type:
- - application/json
- Content-Length:
- - '21'
- Connection:
- - keep-alive
- Vary:
- - Origin
- body:
- encoding: UTF-8
- string: |-
- {
- "success": true
- }
- http_version:
- recorded_at: Fri, 13 Sep 2019 20:08:22 GMT
-- request:
- method: post
- uri: https://api.github.com/graphql
- body:
- encoding: UTF-8
- string: '{"query":"query($username:String!) {\n user(login: $username) {\n pullRequests(states:
- OPEN last: 100) {\n nodes {\n id\n title\n body\n url\n createdAt\n labels(first:
- 100) {\n edges {\n node {\n name\n }\n }\n }\n }\n }\n }\n}\n","variables":{"username":"mkcode"}}'
- headers:
- User-Agent:
- - Faraday v0.12.2
- Authorization:
- - bearer
- Content-Type:
- - application/json
- Accept-Encoding:
- - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
- Accept:
- - "*/*"
- response:
- status:
- code: 200
- message: OK
- headers:
- Server:
- - GitHub.com
- Date:
- - Fri, 13 Sep 2019 20:08:22 GMT
- Content-Type:
- - application/json; charset=utf-8
- Transfer-Encoding:
- - chunked
- Status:
- - 200 OK
- Cache-Control:
- - no-cache
- X-Oauth-Scopes:
- - user:email
- X-Accepted-Oauth-Scopes:
- - repo
- X-Github-Media-Type:
- - github.v4; format=json
- X-Ratelimit-Limit:
- - '5000'
- X-Ratelimit-Remaining:
- - '4952'
- X-Ratelimit-Reset:
- - '1568408901'
- Access-Control-Expose-Headers:
- - ETag, Link, Location, Retry-After, X-GitHub-OTP, X-RateLimit-Limit, X-RateLimit-Remaining,
- X-RateLimit-Reset, X-OAuth-Scopes, X-Accepted-OAuth-Scopes, X-Poll-Interval,
- X-GitHub-Media-Type
- Access-Control-Allow-Origin:
- - "*"
- Strict-Transport-Security:
- - max-age=31536000; includeSubdomains; preload
- X-Frame-Options:
- - deny
- X-Content-Type-Options:
- - nosniff
- X-Xss-Protection:
- - 1; mode=block
- Referrer-Policy:
- - origin-when-cross-origin, strict-origin-when-cross-origin
- Content-Security-Policy:
- - default-src 'none'
- X-Github-Request-Id:
- - 4C68:5B34:A8177A:13E13E0:5D7BF736
- body:
- encoding: ASCII-8BIT
- string: '{"data":{"user":{"pullRequests":{"nodes":[{"id":"MDExOlB1bGxSZXF1ZXN0NTc5MDc4Mg==","title":"Upgraded
- to rails 3.2 stable","body":"Hi, I''m using this app as template for a new
- project. Wanted to get on rails 3.2 stable before I started. Here it is!\n\nCheers\n","url":"https://github.com/maccman/spine.rails3/pull/6","createdAt":"2013-05-17T23:05:41Z","labels":{"edges":[]}},{"id":"MDExOlB1bGxSZXF1ZXN0NDcxMDUxNzU=","title":"Delete
- repos cleanup","body":"@PeterDaveHello - Thanks for your contribution. I''m
- using this work as an opportunity to clean up how we are doing testing in
- this app. I see that you basically copied the format from the create_repos
- spec - which was a good move.\n\nAfter reworking this so I can understand
- what is happening in https://github.com/education/teachers_pet/commit/be8a8b1ddb3a8ef79a88f53f6bd05649417f0515,
- I notice that we are not stubbing any repo deletion requests - which then
- therefore would mean that these tests aren''t actually sending any API requests.\n\n@PeterDaveHello
- - these tests should be hitting a delete repo endpoint on the GitHub API,
- should they not? Can we rework them so that they do? These tests should fail
- in the case the we comment out the `teachers_pet(:delete_repos)`... block.\n\n/cc
- @johndbritton \n","url":"https://github.com/education/teachers_pet/pull/126","createdAt":"2015-10-08T02:24:19Z","labels":{"edges":[]}},{"id":"MDExOlB1bGxSZXF1ZXN0NDc0Nzk5ODQ=","title":"Results
- by cookie","body":"Hi @deski - Following up on our discussion in #78 \n\nThis
- PR adds info from the peek cookie as discussed. It does not save Peek results
- unless the peek cookie is enabled. Always sets the cookie if peek is enabled.\n\nIn
- the case Peek was not enabled for a request, and is toggled on, `Peek::Views`
- with a `data-defer-to` are hidden and a refresh message is displayed: \n\n![screen
- shot 2015-10-12 at 8 41 31 pm](https://cloud.githubusercontent.com/assets/283496/10442611/22bb6a2e-7122-11e5-8fb3-c3fb5ed333b7.png)\n","url":"https://github.com/peek/peek/pull/79","createdAt":"2015-10-13T00:46:43Z","labels":{"edges":[]}},{"id":"MDExOlB1bGxSZXF1ZXN0NTE0MTg4ODg=","title":"Update
- README.md","body":"Add maintenance note to readme\n","url":"https://github.com/vulume/Cordova-DBCamera/pull/1","createdAt":"2015-11-20T22:49:53Z","labels":{"edges":[]}},{"id":"MDExOlB1bGxSZXF1ZXN0NjkyNjE4Mjk=","title":"Add
- natural layer","body":"Adds the beginnings of a prose layer.\n\nReplaces #5403
- according to the discussion in #5996.\n","url":"https://github.com/syl20bnr/spacemacs/pull/6012","createdAt":"2016-05-08T06:24:38Z","labels":{"edges":[{"node":{"name":"New
- Layer"}}]}},{"id":"MDExOlB1bGxSZXF1ZXN0OTA4ODAzMzQ=","title":"Coercion type
- systems","body":"Introducing switchable type coercion systems for Hashie.
- Follows up on #239.\n\nAdds ''dry-types'' and ''activemodel'' alongside Hashie''s
- builtin coercion system. Basic usage is written up in the README.\n\nFor the
- most part, reading the source should be straight forward. The ''coercion''
- folder under ''extensions'' contains the implementation of the 3 coercion
- systems. The `Hashie::Extensions::Coercion` module was split into two files.
- The file itself contains the interface and common coercion methods, while
- the `Coercion::HashieTypes` class now contains the actual coercion implementation.\n\nThe
- only confusing part is the `CoercionSystemIncludeBuilder` defined under `Hashie::Extensions::Coercion`.
- The purpose of this class is to DRY up the included hooks for `Hashie::Extensions::Coercion`
- and `Hashie::Extensions::Dash::Coercion`. The common includes are defined
- once, and reused in the default `included` method and the `active_model` and
- `dry_types` methods on both the default and Dash coercion classes. The `active_model`
- and `dry_types` methods on `Hashie::Extensions::Coercion` and `Hashie::Extensions::Dash::Coercion`
- both return an anonymous module with an `included` method correctly defined,
- which then is immediately executed because it then included. \n\nExample:
- \n\n``` ruby\nmod = Hashie::Extensions::Coercion.dry_types\n# => \n\nmod.methods\n#=> [:included]\n\nclass MyHash < Hashie::Hash\n include
- mod\nend\n#=> Hashie::Extensions::Coercion::ClassMethods, Hashie::Extensions::Coercion::InstanceMethods,
- and Hashie::Extensions::Coercion::DryTypes are all mixed into MyHash\n```\n\nThis
- is 100% backwards compatible and all the tests pass. I did not add any additional
- tests - we should not need many as the new coercion systems are well tested
- in their own repos. We may want to add a few tests though.\n","url":"https://github.com/intridea/hashie/pull/379","createdAt":"2016-10-25T19:59:18Z","labels":{"edges":[{"node":{"name":"new
- feature"}}]}}]}}}}'
- http_version:
- recorded_at: Fri, 13 Sep 2019 20:08:22 GMT
-recorded_with: VCR 5.0.0
diff --git a/spec/vcr/User/_register/user_has_no_email/applies_the_correct_errors_to_the_user_object.yml b/spec/vcr/User/_register/user_has_no_email/applies_the_correct_errors_to_the_user_object.yml
deleted file mode 100644
index 7114be484..000000000
--- a/spec/vcr/User/_register/user_has_no_email/applies_the_correct_errors_to_the_user_object.yml
+++ /dev/null
@@ -1,125 +0,0 @@
----
-http_interactions:
-- request:
- method: post
- uri: https://api.github.com/graphql
- body:
- encoding: UTF-8
- string: '{"query":"query($username:String!) {\n user(login: $username) {\n pullRequests(states:
- OPEN last: 100) {\n nodes {\n id\n title\n body\n url\n createdAt\n labels(first:
- 100) {\n edges {\n node {\n name\n }\n }\n }\n }\n }\n }\n}\n","variables":{"username":"mkcode"}}'
- headers:
- User-Agent:
- - Faraday v0.12.2
- Authorization:
- - bearer
- Content-Type:
- - application/json
- Accept-Encoding:
- - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
- Accept:
- - "*/*"
- response:
- status:
- code: 200
- message: OK
- headers:
- Date:
- - Fri, 13 Sep 2019 19:58:01 GMT
- Content-Type:
- - application/json; charset=utf-8
- Transfer-Encoding:
- - chunked
- Server:
- - GitHub.com
- Status:
- - 200 OK
- Cache-Control:
- - no-cache
- X-Oauth-Scopes:
- - user:email
- X-Accepted-Oauth-Scopes:
- - repo
- X-Github-Media-Type:
- - github.v4; format=json
- X-Ratelimit-Limit:
- - '5000'
- X-Ratelimit-Remaining:
- - '4974'
- X-Ratelimit-Reset:
- - '1568408095'
- Access-Control-Expose-Headers:
- - ETag, Link, Location, Retry-After, X-GitHub-OTP, X-RateLimit-Limit, X-RateLimit-Remaining,
- X-RateLimit-Reset, X-OAuth-Scopes, X-Accepted-OAuth-Scopes, X-Poll-Interval,
- X-GitHub-Media-Type
- Access-Control-Allow-Origin:
- - "*"
- Strict-Transport-Security:
- - max-age=31536000; includeSubdomains; preload
- X-Frame-Options:
- - deny
- X-Content-Type-Options:
- - nosniff
- X-Xss-Protection:
- - 1; mode=block
- Referrer-Policy:
- - origin-when-cross-origin, strict-origin-when-cross-origin
- Content-Security-Policy:
- - default-src 'none'
- Vary:
- - Accept-Encoding
- X-Github-Request-Id:
- - 2134:6920:2A85E3:4682B2:5D7BF4C9
- body:
- encoding: ASCII-8BIT
- string: '{"data":{"user":{"pullRequests":{"nodes":[{"id":"MDExOlB1bGxSZXF1ZXN0NTc5MDc4Mg==","title":"Upgraded
- to rails 3.2 stable","body":"Hi, I''m using this app as template for a new
- project. Wanted to get on rails 3.2 stable before I started. Here it is!\n\nCheers\n","url":"https://github.com/maccman/spine.rails3/pull/6","createdAt":"2013-05-17T23:05:41Z","labels":{"edges":[]}},{"id":"MDExOlB1bGxSZXF1ZXN0NDcxMDUxNzU=","title":"Delete
- repos cleanup","body":"@PeterDaveHello - Thanks for your contribution. I''m
- using this work as an opportunity to clean up how we are doing testing in
- this app. I see that you basically copied the format from the create_repos
- spec - which was a good move.\n\nAfter reworking this so I can understand
- what is happening in https://github.com/education/teachers_pet/commit/be8a8b1ddb3a8ef79a88f53f6bd05649417f0515,
- I notice that we are not stubbing any repo deletion requests - which then
- therefore would mean that these tests aren''t actually sending any API requests.\n\n@PeterDaveHello
- - these tests should be hitting a delete repo endpoint on the GitHub API,
- should they not? Can we rework them so that they do? These tests should fail
- in the case the we comment out the `teachers_pet(:delete_repos)`... block.\n\n/cc
- @johndbritton \n","url":"https://github.com/education/teachers_pet/pull/126","createdAt":"2015-10-08T02:24:19Z","labels":{"edges":[]}},{"id":"MDExOlB1bGxSZXF1ZXN0NDc0Nzk5ODQ=","title":"Results
- by cookie","body":"Hi @deski - Following up on our discussion in #78 \n\nThis
- PR adds info from the peek cookie as discussed. It does not save Peek results
- unless the peek cookie is enabled. Always sets the cookie if peek is enabled.\n\nIn
- the case Peek was not enabled for a request, and is toggled on, `Peek::Views`
- with a `data-defer-to` are hidden and a refresh message is displayed: \n\n![screen
- shot 2015-10-12 at 8 41 31 pm](https://cloud.githubusercontent.com/assets/283496/10442611/22bb6a2e-7122-11e5-8fb3-c3fb5ed333b7.png)\n","url":"https://github.com/peek/peek/pull/79","createdAt":"2015-10-13T00:46:43Z","labels":{"edges":[]}},{"id":"MDExOlB1bGxSZXF1ZXN0NTE0MTg4ODg=","title":"Update
- README.md","body":"Add maintenance note to readme\n","url":"https://github.com/vulume/Cordova-DBCamera/pull/1","createdAt":"2015-11-20T22:49:53Z","labels":{"edges":[]}},{"id":"MDExOlB1bGxSZXF1ZXN0NjkyNjE4Mjk=","title":"Add
- natural layer","body":"Adds the beginnings of a prose layer.\n\nReplaces #5403
- according to the discussion in #5996.\n","url":"https://github.com/syl20bnr/spacemacs/pull/6012","createdAt":"2016-05-08T06:24:38Z","labels":{"edges":[{"node":{"name":"New
- Layer"}}]}},{"id":"MDExOlB1bGxSZXF1ZXN0OTA4ODAzMzQ=","title":"Coercion type
- systems","body":"Introducing switchable type coercion systems for Hashie.
- Follows up on #239.\n\nAdds ''dry-types'' and ''activemodel'' alongside Hashie''s
- builtin coercion system. Basic usage is written up in the README.\n\nFor the
- most part, reading the source should be straight forward. The ''coercion''
- folder under ''extensions'' contains the implementation of the 3 coercion
- systems. The `Hashie::Extensions::Coercion` module was split into two files.
- The file itself contains the interface and common coercion methods, while
- the `Coercion::HashieTypes` class now contains the actual coercion implementation.\n\nThe
- only confusing part is the `CoercionSystemIncludeBuilder` defined under `Hashie::Extensions::Coercion`.
- The purpose of this class is to DRY up the included hooks for `Hashie::Extensions::Coercion`
- and `Hashie::Extensions::Dash::Coercion`. The common includes are defined
- once, and reused in the default `included` method and the `active_model` and
- `dry_types` methods on both the default and Dash coercion classes. The `active_model`
- and `dry_types` methods on `Hashie::Extensions::Coercion` and `Hashie::Extensions::Dash::Coercion`
- both return an anonymous module with an `included` method correctly defined,
- which then is immediately executed because it then included. \n\nExample:
- \n\n``` ruby\nmod = Hashie::Extensions::Coercion.dry_types\n# => \n\nmod.methods\n#=> [:included]\n\nclass MyHash < Hashie::Hash\n include
- mod\nend\n#=> Hashie::Extensions::Coercion::ClassMethods, Hashie::Extensions::Coercion::InstanceMethods,
- and Hashie::Extensions::Coercion::DryTypes are all mixed into MyHash\n```\n\nThis
- is 100% backwards compatible and all the tests pass. I did not add any additional
- tests - we should not need many as the new coercion systems are well tested
- in their own repos. We may want to add a few tests though.\n","url":"https://github.com/intridea/hashie/pull/379","createdAt":"2016-10-25T19:59:18Z","labels":{"edges":[{"node":{"name":"new
- feature"}}]}}]}}}}'
- http_version:
- recorded_at: Fri, 13 Sep 2019 19:58:01 GMT
-recorded_with: VCR 5.0.0
diff --git a/spec/vcr/User/_register/user_has_no_email/can_t_enter_the_registered_state.yml b/spec/vcr/User/_register/user_has_no_email/can_t_enter_the_registered_state.yml
deleted file mode 100644
index 98c2fdceb..000000000
--- a/spec/vcr/User/_register/user_has_no_email/can_t_enter_the_registered_state.yml
+++ /dev/null
@@ -1,163 +0,0 @@
----
-http_interactions:
-- request:
- method: post
- uri: https://api.segment.io/v1/import
- body:
- encoding: UTF-8
- string: '{"sentAt":"2019-09-13T16:08:21.805-04:00","batch":[{"userId":1,"anonymousId":null,"integrations":null,"context":{"library":{"name":"analytics-ruby","version":"2.0.13"}},"traits":{"pull_requests_count":0},"options":null,"timestamp":"2019-09-13T16:08:21.805-04:00","type":"identify","messageId":"881d3a34-290d-46df-8d4b-acc96f00e8c8"}]}'
- headers:
- Content-Type:
- - application/json
- Accept:
- - application/json
- Accept-Encoding:
- - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
- User-Agent:
- - Ruby
- Authorization:
- - Basic NWw3czVyTVl0T3doWUNZMDBTcnIzMTYzWkZmR2N5ZVQ6
- response:
- status:
- code: 200
- message: OK
- headers:
- Date:
- - Fri, 13 Sep 2019 20:08:22 GMT
- Content-Type:
- - application/json
- Content-Length:
- - '21'
- Connection:
- - keep-alive
- Vary:
- - Origin
- body:
- encoding: UTF-8
- string: |-
- {
- "success": true
- }
- http_version:
- recorded_at: Fri, 13 Sep 2019 20:08:22 GMT
-- request:
- method: post
- uri: https://api.github.com/graphql
- body:
- encoding: UTF-8
- string: '{"query":"query($username:String!) {\n user(login: $username) {\n pullRequests(states:
- OPEN last: 100) {\n nodes {\n id\n title\n body\n url\n createdAt\n labels(first:
- 100) {\n edges {\n node {\n name\n }\n }\n }\n }\n }\n }\n}\n","variables":{"username":"mkcode"}}'
- headers:
- User-Agent:
- - Faraday v0.12.2
- Authorization:
- - bearer
- Content-Type:
- - application/json
- Accept-Encoding:
- - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
- Accept:
- - "*/*"
- response:
- status:
- code: 200
- message: OK
- headers:
- Server:
- - GitHub.com
- Date:
- - Fri, 13 Sep 2019 20:08:22 GMT
- Content-Type:
- - application/json; charset=utf-8
- Transfer-Encoding:
- - chunked
- Status:
- - 200 OK
- Cache-Control:
- - no-cache
- X-Oauth-Scopes:
- - user:email
- X-Accepted-Oauth-Scopes:
- - repo
- X-Github-Media-Type:
- - github.v4; format=json
- X-Ratelimit-Limit:
- - '5000'
- X-Ratelimit-Remaining:
- - '4953'
- X-Ratelimit-Reset:
- - '1568408901'
- Access-Control-Expose-Headers:
- - ETag, Link, Location, Retry-After, X-GitHub-OTP, X-RateLimit-Limit, X-RateLimit-Remaining,
- X-RateLimit-Reset, X-OAuth-Scopes, X-Accepted-OAuth-Scopes, X-Poll-Interval,
- X-GitHub-Media-Type
- Access-Control-Allow-Origin:
- - "*"
- Strict-Transport-Security:
- - max-age=31536000; includeSubdomains; preload
- X-Frame-Options:
- - deny
- X-Content-Type-Options:
- - nosniff
- X-Xss-Protection:
- - 1; mode=block
- Referrer-Policy:
- - origin-when-cross-origin, strict-origin-when-cross-origin
- Content-Security-Policy:
- - default-src 'none'
- X-Github-Request-Id:
- - 041C:5839:894592:11DB85C:5D7BF736
- body:
- encoding: ASCII-8BIT
- string: '{"data":{"user":{"pullRequests":{"nodes":[{"id":"MDExOlB1bGxSZXF1ZXN0NTc5MDc4Mg==","title":"Upgraded
- to rails 3.2 stable","body":"Hi, I''m using this app as template for a new
- project. Wanted to get on rails 3.2 stable before I started. Here it is!\n\nCheers\n","url":"https://github.com/maccman/spine.rails3/pull/6","createdAt":"2013-05-17T23:05:41Z","labels":{"edges":[]}},{"id":"MDExOlB1bGxSZXF1ZXN0NDcxMDUxNzU=","title":"Delete
- repos cleanup","body":"@PeterDaveHello - Thanks for your contribution. I''m
- using this work as an opportunity to clean up how we are doing testing in
- this app. I see that you basically copied the format from the create_repos
- spec - which was a good move.\n\nAfter reworking this so I can understand
- what is happening in https://github.com/education/teachers_pet/commit/be8a8b1ddb3a8ef79a88f53f6bd05649417f0515,
- I notice that we are not stubbing any repo deletion requests - which then
- therefore would mean that these tests aren''t actually sending any API requests.\n\n@PeterDaveHello
- - these tests should be hitting a delete repo endpoint on the GitHub API,
- should they not? Can we rework them so that they do? These tests should fail
- in the case the we comment out the `teachers_pet(:delete_repos)`... block.\n\n/cc
- @johndbritton \n","url":"https://github.com/education/teachers_pet/pull/126","createdAt":"2015-10-08T02:24:19Z","labels":{"edges":[]}},{"id":"MDExOlB1bGxSZXF1ZXN0NDc0Nzk5ODQ=","title":"Results
- by cookie","body":"Hi @deski - Following up on our discussion in #78 \n\nThis
- PR adds info from the peek cookie as discussed. It does not save Peek results
- unless the peek cookie is enabled. Always sets the cookie if peek is enabled.\n\nIn
- the case Peek was not enabled for a request, and is toggled on, `Peek::Views`
- with a `data-defer-to` are hidden and a refresh message is displayed: \n\n![screen
- shot 2015-10-12 at 8 41 31 pm](https://cloud.githubusercontent.com/assets/283496/10442611/22bb6a2e-7122-11e5-8fb3-c3fb5ed333b7.png)\n","url":"https://github.com/peek/peek/pull/79","createdAt":"2015-10-13T00:46:43Z","labels":{"edges":[]}},{"id":"MDExOlB1bGxSZXF1ZXN0NTE0MTg4ODg=","title":"Update
- README.md","body":"Add maintenance note to readme\n","url":"https://github.com/vulume/Cordova-DBCamera/pull/1","createdAt":"2015-11-20T22:49:53Z","labels":{"edges":[]}},{"id":"MDExOlB1bGxSZXF1ZXN0NjkyNjE4Mjk=","title":"Add
- natural layer","body":"Adds the beginnings of a prose layer.\n\nReplaces #5403
- according to the discussion in #5996.\n","url":"https://github.com/syl20bnr/spacemacs/pull/6012","createdAt":"2016-05-08T06:24:38Z","labels":{"edges":[{"node":{"name":"New
- Layer"}}]}},{"id":"MDExOlB1bGxSZXF1ZXN0OTA4ODAzMzQ=","title":"Coercion type
- systems","body":"Introducing switchable type coercion systems for Hashie.
- Follows up on #239.\n\nAdds ''dry-types'' and ''activemodel'' alongside Hashie''s
- builtin coercion system. Basic usage is written up in the README.\n\nFor the
- most part, reading the source should be straight forward. The ''coercion''
- folder under ''extensions'' contains the implementation of the 3 coercion
- systems. The `Hashie::Extensions::Coercion` module was split into two files.
- The file itself contains the interface and common coercion methods, while
- the `Coercion::HashieTypes` class now contains the actual coercion implementation.\n\nThe
- only confusing part is the `CoercionSystemIncludeBuilder` defined under `Hashie::Extensions::Coercion`.
- The purpose of this class is to DRY up the included hooks for `Hashie::Extensions::Coercion`
- and `Hashie::Extensions::Dash::Coercion`. The common includes are defined
- once, and reused in the default `included` method and the `active_model` and
- `dry_types` methods on both the default and Dash coercion classes. The `active_model`
- and `dry_types` methods on `Hashie::Extensions::Coercion` and `Hashie::Extensions::Dash::Coercion`
- both return an anonymous module with an `included` method correctly defined,
- which then is immediately executed because it then included. \n\nExample:
- \n\n``` ruby\nmod = Hashie::Extensions::Coercion.dry_types\n# => \n\nmod.methods\n#=> [:included]\n\nclass MyHash < Hashie::Hash\n include
- mod\nend\n#=> Hashie::Extensions::Coercion::ClassMethods, Hashie::Extensions::Coercion::InstanceMethods,
- and Hashie::Extensions::Coercion::DryTypes are all mixed into MyHash\n```\n\nThis
- is 100% backwards compatible and all the tests pass. I did not add any additional
- tests - we should not need many as the new coercion systems are well tested
- in their own repos. We may want to add a few tests though.\n","url":"https://github.com/intridea/hashie/pull/379","createdAt":"2016-10-25T19:59:18Z","labels":{"edges":[{"node":{"name":"new
- feature"}}]}}]}}}}'
- http_version:
- recorded_at: Fri, 13 Sep 2019 20:08:22 GMT
-recorded_with: VCR 5.0.0
diff --git a/spec/vcr/User/_register/user_has_no_email/disallows_the_user_to_enter_the_registered_state.yml b/spec/vcr/User/_register/user_has_no_email/disallows_the_user_to_enter_the_registered_state.yml
deleted file mode 100644
index 6c8602a47..000000000
--- a/spec/vcr/User/_register/user_has_no_email/disallows_the_user_to_enter_the_registered_state.yml
+++ /dev/null
@@ -1,125 +0,0 @@
----
-http_interactions:
-- request:
- method: post
- uri: https://api.github.com/graphql
- body:
- encoding: UTF-8
- string: '{"query":"query($username:String!) {\n user(login: $username) {\n pullRequests(states:
- OPEN last: 100) {\n nodes {\n id\n title\n body\n url\n createdAt\n labels(first:
- 100) {\n edges {\n node {\n name\n }\n }\n }\n }\n }\n }\n}\n","variables":{"username":"mkcode"}}'
- headers:
- User-Agent:
- - Faraday v0.12.2
- Authorization:
- - bearer
- Content-Type:
- - application/json
- Accept-Encoding:
- - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
- Accept:
- - "*/*"
- response:
- status:
- code: 200
- message: OK
- headers:
- Date:
- - Fri, 13 Sep 2019 19:58:00 GMT
- Content-Type:
- - application/json; charset=utf-8
- Transfer-Encoding:
- - chunked
- Server:
- - GitHub.com
- Status:
- - 200 OK
- Cache-Control:
- - no-cache
- X-Oauth-Scopes:
- - user:email
- X-Accepted-Oauth-Scopes:
- - repo
- X-Github-Media-Type:
- - github.v4; format=json
- X-Ratelimit-Limit:
- - '5000'
- X-Ratelimit-Remaining:
- - '4975'
- X-Ratelimit-Reset:
- - '1568408095'
- Access-Control-Expose-Headers:
- - ETag, Link, Location, Retry-After, X-GitHub-OTP, X-RateLimit-Limit, X-RateLimit-Remaining,
- X-RateLimit-Reset, X-OAuth-Scopes, X-Accepted-OAuth-Scopes, X-Poll-Interval,
- X-GitHub-Media-Type
- Access-Control-Allow-Origin:
- - "*"
- Strict-Transport-Security:
- - max-age=31536000; includeSubdomains; preload
- X-Frame-Options:
- - deny
- X-Content-Type-Options:
- - nosniff
- X-Xss-Protection:
- - 1; mode=block
- Referrer-Policy:
- - origin-when-cross-origin, strict-origin-when-cross-origin
- Content-Security-Policy:
- - default-src 'none'
- Vary:
- - Accept-Encoding
- X-Github-Request-Id:
- - 74DA:6802:114DCB:1D5916:5D7BF4C8
- body:
- encoding: ASCII-8BIT
- string: '{"data":{"user":{"pullRequests":{"nodes":[{"id":"MDExOlB1bGxSZXF1ZXN0NTc5MDc4Mg==","title":"Upgraded
- to rails 3.2 stable","body":"Hi, I''m using this app as template for a new
- project. Wanted to get on rails 3.2 stable before I started. Here it is!\n\nCheers\n","url":"https://github.com/maccman/spine.rails3/pull/6","createdAt":"2013-05-17T23:05:41Z","labels":{"edges":[]}},{"id":"MDExOlB1bGxSZXF1ZXN0NDcxMDUxNzU=","title":"Delete
- repos cleanup","body":"@PeterDaveHello - Thanks for your contribution. I''m
- using this work as an opportunity to clean up how we are doing testing in
- this app. I see that you basically copied the format from the create_repos
- spec - which was a good move.\n\nAfter reworking this so I can understand
- what is happening in https://github.com/education/teachers_pet/commit/be8a8b1ddb3a8ef79a88f53f6bd05649417f0515,
- I notice that we are not stubbing any repo deletion requests - which then
- therefore would mean that these tests aren''t actually sending any API requests.\n\n@PeterDaveHello
- - these tests should be hitting a delete repo endpoint on the GitHub API,
- should they not? Can we rework them so that they do? These tests should fail
- in the case the we comment out the `teachers_pet(:delete_repos)`... block.\n\n/cc
- @johndbritton \n","url":"https://github.com/education/teachers_pet/pull/126","createdAt":"2015-10-08T02:24:19Z","labels":{"edges":[]}},{"id":"MDExOlB1bGxSZXF1ZXN0NDc0Nzk5ODQ=","title":"Results
- by cookie","body":"Hi @deski - Following up on our discussion in #78 \n\nThis
- PR adds info from the peek cookie as discussed. It does not save Peek results
- unless the peek cookie is enabled. Always sets the cookie if peek is enabled.\n\nIn
- the case Peek was not enabled for a request, and is toggled on, `Peek::Views`
- with a `data-defer-to` are hidden and a refresh message is displayed: \n\n![screen
- shot 2015-10-12 at 8 41 31 pm](https://cloud.githubusercontent.com/assets/283496/10442611/22bb6a2e-7122-11e5-8fb3-c3fb5ed333b7.png)\n","url":"https://github.com/peek/peek/pull/79","createdAt":"2015-10-13T00:46:43Z","labels":{"edges":[]}},{"id":"MDExOlB1bGxSZXF1ZXN0NTE0MTg4ODg=","title":"Update
- README.md","body":"Add maintenance note to readme\n","url":"https://github.com/vulume/Cordova-DBCamera/pull/1","createdAt":"2015-11-20T22:49:53Z","labels":{"edges":[]}},{"id":"MDExOlB1bGxSZXF1ZXN0NjkyNjE4Mjk=","title":"Add
- natural layer","body":"Adds the beginnings of a prose layer.\n\nReplaces #5403
- according to the discussion in #5996.\n","url":"https://github.com/syl20bnr/spacemacs/pull/6012","createdAt":"2016-05-08T06:24:38Z","labels":{"edges":[{"node":{"name":"New
- Layer"}}]}},{"id":"MDExOlB1bGxSZXF1ZXN0OTA4ODAzMzQ=","title":"Coercion type
- systems","body":"Introducing switchable type coercion systems for Hashie.
- Follows up on #239.\n\nAdds ''dry-types'' and ''activemodel'' alongside Hashie''s
- builtin coercion system. Basic usage is written up in the README.\n\nFor the
- most part, reading the source should be straight forward. The ''coercion''
- folder under ''extensions'' contains the implementation of the 3 coercion
- systems. The `Hashie::Extensions::Coercion` module was split into two files.
- The file itself contains the interface and common coercion methods, while
- the `Coercion::HashieTypes` class now contains the actual coercion implementation.\n\nThe
- only confusing part is the `CoercionSystemIncludeBuilder` defined under `Hashie::Extensions::Coercion`.
- The purpose of this class is to DRY up the included hooks for `Hashie::Extensions::Coercion`
- and `Hashie::Extensions::Dash::Coercion`. The common includes are defined
- once, and reused in the default `included` method and the `active_model` and
- `dry_types` methods on both the default and Dash coercion classes. The `active_model`
- and `dry_types` methods on `Hashie::Extensions::Coercion` and `Hashie::Extensions::Dash::Coercion`
- both return an anonymous module with an `included` method correctly defined,
- which then is immediately executed because it then included. \n\nExample:
- \n\n``` ruby\nmod = Hashie::Extensions::Coercion.dry_types\n# => \n\nmod.methods\n#=> [:included]\n\nclass MyHash < Hashie::Hash\n include
- mod\nend\n#=> Hashie::Extensions::Coercion::ClassMethods, Hashie::Extensions::Coercion::InstanceMethods,
- and Hashie::Extensions::Coercion::DryTypes are all mixed into MyHash\n```\n\nThis
- is 100% backwards compatible and all the tests pass. I did not add any additional
- tests - we should not need many as the new coercion systems are well tested
- in their own repos. We may want to add a few tests though.\n","url":"https://github.com/intridea/hashie/pull/379","createdAt":"2016-10-25T19:59:18Z","labels":{"edges":[{"node":{"name":"new
- feature"}}]}}]}}}}'
- http_version:
- recorded_at: Fri, 13 Sep 2019 19:58:01 GMT
-recorded_with: VCR 5.0.0
diff --git a/spec/vcr/User/_register/user_is_created_but_has_not_agreed_to_terms/applies_the_correct_errors.yml b/spec/vcr/User/_register/user_is_created_but_has_not_agreed_to_terms/applies_the_correct_errors.yml
deleted file mode 100644
index 7d19382a9..000000000
--- a/spec/vcr/User/_register/user_is_created_but_has_not_agreed_to_terms/applies_the_correct_errors.yml
+++ /dev/null
@@ -1,123 +0,0 @@
----
-http_interactions:
-- request:
- method: post
- uri: https://api.github.com/graphql
- body:
- encoding: UTF-8
- string: '{"query":"query($username:String!) {\n user(login: $username) {\n pullRequests(states:
- OPEN last: 100) {\n nodes {\n id\n title\n body\n url\n createdAt\n labels(first:
- 100) {\n edges {\n node {\n name\n }\n }\n }\n }\n }\n }\n}\n","variables":{"username":"mkcode"}}'
- headers:
- User-Agent:
- - Faraday v0.12.2
- Authorization:
- - bearer
- Content-Type:
- - application/json
- Accept-Encoding:
- - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
- Accept:
- - "*/*"
- response:
- status:
- code: 200
- message: OK
- headers:
- Server:
- - GitHub.com
- Date:
- - Fri, 13 Sep 2019 20:08:22 GMT
- Content-Type:
- - application/json; charset=utf-8
- Transfer-Encoding:
- - chunked
- Status:
- - 200 OK
- Cache-Control:
- - no-cache
- X-Oauth-Scopes:
- - user:email
- X-Accepted-Oauth-Scopes:
- - repo
- X-Github-Media-Type:
- - github.v4; format=json
- X-Ratelimit-Limit:
- - '5000'
- X-Ratelimit-Remaining:
- - '4954'
- X-Ratelimit-Reset:
- - '1568408901'
- Access-Control-Expose-Headers:
- - ETag, Link, Location, Retry-After, X-GitHub-OTP, X-RateLimit-Limit, X-RateLimit-Remaining,
- X-RateLimit-Reset, X-OAuth-Scopes, X-Accepted-OAuth-Scopes, X-Poll-Interval,
- X-GitHub-Media-Type
- Access-Control-Allow-Origin:
- - "*"
- Strict-Transport-Security:
- - max-age=31536000; includeSubdomains; preload
- X-Frame-Options:
- - deny
- X-Content-Type-Options:
- - nosniff
- X-Xss-Protection:
- - 1; mode=block
- Referrer-Policy:
- - origin-when-cross-origin, strict-origin-when-cross-origin
- Content-Security-Policy:
- - default-src 'none'
- X-Github-Request-Id:
- - 4F1C:2E7B:B51A2C:1521354:5D7BF735
- body:
- encoding: ASCII-8BIT
- string: '{"data":{"user":{"pullRequests":{"nodes":[{"id":"MDExOlB1bGxSZXF1ZXN0NTc5MDc4Mg==","title":"Upgraded
- to rails 3.2 stable","body":"Hi, I''m using this app as template for a new
- project. Wanted to get on rails 3.2 stable before I started. Here it is!\n\nCheers\n","url":"https://github.com/maccman/spine.rails3/pull/6","createdAt":"2013-05-17T23:05:41Z","labels":{"edges":[]}},{"id":"MDExOlB1bGxSZXF1ZXN0NDcxMDUxNzU=","title":"Delete
- repos cleanup","body":"@PeterDaveHello - Thanks for your contribution. I''m
- using this work as an opportunity to clean up how we are doing testing in
- this app. I see that you basically copied the format from the create_repos
- spec - which was a good move.\n\nAfter reworking this so I can understand
- what is happening in https://github.com/education/teachers_pet/commit/be8a8b1ddb3a8ef79a88f53f6bd05649417f0515,
- I notice that we are not stubbing any repo deletion requests - which then
- therefore would mean that these tests aren''t actually sending any API requests.\n\n@PeterDaveHello
- - these tests should be hitting a delete repo endpoint on the GitHub API,
- should they not? Can we rework them so that they do? These tests should fail
- in the case the we comment out the `teachers_pet(:delete_repos)`... block.\n\n/cc
- @johndbritton \n","url":"https://github.com/education/teachers_pet/pull/126","createdAt":"2015-10-08T02:24:19Z","labels":{"edges":[]}},{"id":"MDExOlB1bGxSZXF1ZXN0NDc0Nzk5ODQ=","title":"Results
- by cookie","body":"Hi @deski - Following up on our discussion in #78 \n\nThis
- PR adds info from the peek cookie as discussed. It does not save Peek results
- unless the peek cookie is enabled. Always sets the cookie if peek is enabled.\n\nIn
- the case Peek was not enabled for a request, and is toggled on, `Peek::Views`
- with a `data-defer-to` are hidden and a refresh message is displayed: \n\n![screen
- shot 2015-10-12 at 8 41 31 pm](https://cloud.githubusercontent.com/assets/283496/10442611/22bb6a2e-7122-11e5-8fb3-c3fb5ed333b7.png)\n","url":"https://github.com/peek/peek/pull/79","createdAt":"2015-10-13T00:46:43Z","labels":{"edges":[]}},{"id":"MDExOlB1bGxSZXF1ZXN0NTE0MTg4ODg=","title":"Update
- README.md","body":"Add maintenance note to readme\n","url":"https://github.com/vulume/Cordova-DBCamera/pull/1","createdAt":"2015-11-20T22:49:53Z","labels":{"edges":[]}},{"id":"MDExOlB1bGxSZXF1ZXN0NjkyNjE4Mjk=","title":"Add
- natural layer","body":"Adds the beginnings of a prose layer.\n\nReplaces #5403
- according to the discussion in #5996.\n","url":"https://github.com/syl20bnr/spacemacs/pull/6012","createdAt":"2016-05-08T06:24:38Z","labels":{"edges":[{"node":{"name":"New
- Layer"}}]}},{"id":"MDExOlB1bGxSZXF1ZXN0OTA4ODAzMzQ=","title":"Coercion type
- systems","body":"Introducing switchable type coercion systems for Hashie.
- Follows up on #239.\n\nAdds ''dry-types'' and ''activemodel'' alongside Hashie''s
- builtin coercion system. Basic usage is written up in the README.\n\nFor the
- most part, reading the source should be straight forward. The ''coercion''
- folder under ''extensions'' contains the implementation of the 3 coercion
- systems. The `Hashie::Extensions::Coercion` module was split into two files.
- The file itself contains the interface and common coercion methods, while
- the `Coercion::HashieTypes` class now contains the actual coercion implementation.\n\nThe
- only confusing part is the `CoercionSystemIncludeBuilder` defined under `Hashie::Extensions::Coercion`.
- The purpose of this class is to DRY up the included hooks for `Hashie::Extensions::Coercion`
- and `Hashie::Extensions::Dash::Coercion`. The common includes are defined
- once, and reused in the default `included` method and the `active_model` and
- `dry_types` methods on both the default and Dash coercion classes. The `active_model`
- and `dry_types` methods on `Hashie::Extensions::Coercion` and `Hashie::Extensions::Dash::Coercion`
- both return an anonymous module with an `included` method correctly defined,
- which then is immediately executed because it then included. \n\nExample:
- \n\n``` ruby\nmod = Hashie::Extensions::Coercion.dry_types\n# => \n\nmod.methods\n#=> [:included]\n\nclass MyHash < Hashie::Hash\n include
- mod\nend\n#=> Hashie::Extensions::Coercion::ClassMethods, Hashie::Extensions::Coercion::InstanceMethods,
- and Hashie::Extensions::Coercion::DryTypes are all mixed into MyHash\n```\n\nThis
- is 100% backwards compatible and all the tests pass. I did not add any additional
- tests - we should not need many as the new coercion systems are well tested
- in their own repos. We may want to add a few tests though.\n","url":"https://github.com/intridea/hashie/pull/379","createdAt":"2016-10-25T19:59:18Z","labels":{"edges":[{"node":{"name":"new
- feature"}}]}}]}}}}'
- http_version:
- recorded_at: Fri, 13 Sep 2019 20:08:22 GMT
-recorded_with: VCR 5.0.0
diff --git a/spec/vcr/User/_register/user_is_created_but_has_not_agreed_to_terms/applies_the_correct_errors_to_the_user_object.yml b/spec/vcr/User/_register/user_is_created_but_has_not_agreed_to_terms/applies_the_correct_errors_to_the_user_object.yml
deleted file mode 100644
index 71663f7b5..000000000
--- a/spec/vcr/User/_register/user_is_created_but_has_not_agreed_to_terms/applies_the_correct_errors_to_the_user_object.yml
+++ /dev/null
@@ -1,125 +0,0 @@
----
-http_interactions:
-- request:
- method: post
- uri: https://api.github.com/graphql
- body:
- encoding: UTF-8
- string: '{"query":"query($username:String!) {\n user(login: $username) {\n pullRequests(states:
- OPEN last: 100) {\n nodes {\n id\n title\n body\n url\n createdAt\n labels(first:
- 100) {\n edges {\n node {\n name\n }\n }\n }\n }\n }\n }\n}\n","variables":{"username":"mkcode"}}'
- headers:
- User-Agent:
- - Faraday v0.12.2
- Authorization:
- - bearer
- Content-Type:
- - application/json
- Accept-Encoding:
- - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
- Accept:
- - "*/*"
- response:
- status:
- code: 200
- message: OK
- headers:
- Date:
- - Fri, 13 Sep 2019 19:58:00 GMT
- Content-Type:
- - application/json; charset=utf-8
- Transfer-Encoding:
- - chunked
- Server:
- - GitHub.com
- Status:
- - 200 OK
- Cache-Control:
- - no-cache
- X-Oauth-Scopes:
- - user:email
- X-Accepted-Oauth-Scopes:
- - repo
- X-Github-Media-Type:
- - github.v4; format=json
- X-Ratelimit-Limit:
- - '5000'
- X-Ratelimit-Remaining:
- - '4976'
- X-Ratelimit-Reset:
- - '1568408095'
- Access-Control-Expose-Headers:
- - ETag, Link, Location, Retry-After, X-GitHub-OTP, X-RateLimit-Limit, X-RateLimit-Remaining,
- X-RateLimit-Reset, X-OAuth-Scopes, X-Accepted-OAuth-Scopes, X-Poll-Interval,
- X-GitHub-Media-Type
- Access-Control-Allow-Origin:
- - "*"
- Strict-Transport-Security:
- - max-age=31536000; includeSubdomains; preload
- X-Frame-Options:
- - deny
- X-Content-Type-Options:
- - nosniff
- X-Xss-Protection:
- - 1; mode=block
- Referrer-Policy:
- - origin-when-cross-origin, strict-origin-when-cross-origin
- Content-Security-Policy:
- - default-src 'none'
- Vary:
- - Accept-Encoding
- X-Github-Request-Id:
- - 597D:23DA:18AD3A:2C21D0:5D7BF4C8
- body:
- encoding: ASCII-8BIT
- string: '{"data":{"user":{"pullRequests":{"nodes":[{"id":"MDExOlB1bGxSZXF1ZXN0NTc5MDc4Mg==","title":"Upgraded
- to rails 3.2 stable","body":"Hi, I''m using this app as template for a new
- project. Wanted to get on rails 3.2 stable before I started. Here it is!\n\nCheers\n","url":"https://github.com/maccman/spine.rails3/pull/6","createdAt":"2013-05-17T23:05:41Z","labels":{"edges":[]}},{"id":"MDExOlB1bGxSZXF1ZXN0NDcxMDUxNzU=","title":"Delete
- repos cleanup","body":"@PeterDaveHello - Thanks for your contribution. I''m
- using this work as an opportunity to clean up how we are doing testing in
- this app. I see that you basically copied the format from the create_repos
- spec - which was a good move.\n\nAfter reworking this so I can understand
- what is happening in https://github.com/education/teachers_pet/commit/be8a8b1ddb3a8ef79a88f53f6bd05649417f0515,
- I notice that we are not stubbing any repo deletion requests - which then
- therefore would mean that these tests aren''t actually sending any API requests.\n\n@PeterDaveHello
- - these tests should be hitting a delete repo endpoint on the GitHub API,
- should they not? Can we rework them so that they do? These tests should fail
- in the case the we comment out the `teachers_pet(:delete_repos)`... block.\n\n/cc
- @johndbritton \n","url":"https://github.com/education/teachers_pet/pull/126","createdAt":"2015-10-08T02:24:19Z","labels":{"edges":[]}},{"id":"MDExOlB1bGxSZXF1ZXN0NDc0Nzk5ODQ=","title":"Results
- by cookie","body":"Hi @deski - Following up on our discussion in #78 \n\nThis
- PR adds info from the peek cookie as discussed. It does not save Peek results
- unless the peek cookie is enabled. Always sets the cookie if peek is enabled.\n\nIn
- the case Peek was not enabled for a request, and is toggled on, `Peek::Views`
- with a `data-defer-to` are hidden and a refresh message is displayed: \n\n![screen
- shot 2015-10-12 at 8 41 31 pm](https://cloud.githubusercontent.com/assets/283496/10442611/22bb6a2e-7122-11e5-8fb3-c3fb5ed333b7.png)\n","url":"https://github.com/peek/peek/pull/79","createdAt":"2015-10-13T00:46:43Z","labels":{"edges":[]}},{"id":"MDExOlB1bGxSZXF1ZXN0NTE0MTg4ODg=","title":"Update
- README.md","body":"Add maintenance note to readme\n","url":"https://github.com/vulume/Cordova-DBCamera/pull/1","createdAt":"2015-11-20T22:49:53Z","labels":{"edges":[]}},{"id":"MDExOlB1bGxSZXF1ZXN0NjkyNjE4Mjk=","title":"Add
- natural layer","body":"Adds the beginnings of a prose layer.\n\nReplaces #5403
- according to the discussion in #5996.\n","url":"https://github.com/syl20bnr/spacemacs/pull/6012","createdAt":"2016-05-08T06:24:38Z","labels":{"edges":[{"node":{"name":"New
- Layer"}}]}},{"id":"MDExOlB1bGxSZXF1ZXN0OTA4ODAzMzQ=","title":"Coercion type
- systems","body":"Introducing switchable type coercion systems for Hashie.
- Follows up on #239.\n\nAdds ''dry-types'' and ''activemodel'' alongside Hashie''s
- builtin coercion system. Basic usage is written up in the README.\n\nFor the
- most part, reading the source should be straight forward. The ''coercion''
- folder under ''extensions'' contains the implementation of the 3 coercion
- systems. The `Hashie::Extensions::Coercion` module was split into two files.
- The file itself contains the interface and common coercion methods, while
- the `Coercion::HashieTypes` class now contains the actual coercion implementation.\n\nThe
- only confusing part is the `CoercionSystemIncludeBuilder` defined under `Hashie::Extensions::Coercion`.
- The purpose of this class is to DRY up the included hooks for `Hashie::Extensions::Coercion`
- and `Hashie::Extensions::Dash::Coercion`. The common includes are defined
- once, and reused in the default `included` method and the `active_model` and
- `dry_types` methods on both the default and Dash coercion classes. The `active_model`
- and `dry_types` methods on `Hashie::Extensions::Coercion` and `Hashie::Extensions::Dash::Coercion`
- both return an anonymous module with an `included` method correctly defined,
- which then is immediately executed because it then included. \n\nExample:
- \n\n``` ruby\nmod = Hashie::Extensions::Coercion.dry_types\n# => \n\nmod.methods\n#=> [:included]\n\nclass MyHash < Hashie::Hash\n include
- mod\nend\n#=> Hashie::Extensions::Coercion::ClassMethods, Hashie::Extensions::Coercion::InstanceMethods,
- and Hashie::Extensions::Coercion::DryTypes are all mixed into MyHash\n```\n\nThis
- is 100% backwards compatible and all the tests pass. I did not add any additional
- tests - we should not need many as the new coercion systems are well tested
- in their own repos. We may want to add a few tests though.\n","url":"https://github.com/intridea/hashie/pull/379","createdAt":"2016-10-25T19:59:18Z","labels":{"edges":[{"node":{"name":"new
- feature"}}]}}]}}}}'
- http_version:
- recorded_at: Fri, 13 Sep 2019 19:58:00 GMT
-recorded_with: VCR 5.0.0
diff --git a/spec/vcr/User/_register/user_is_created_but_has_not_agreed_to_terms/can_t_enter_the_registered_state.yml b/spec/vcr/User/_register/user_is_created_but_has_not_agreed_to_terms/can_t_enter_the_registered_state.yml
deleted file mode 100644
index 8c335a578..000000000
--- a/spec/vcr/User/_register/user_is_created_but_has_not_agreed_to_terms/can_t_enter_the_registered_state.yml
+++ /dev/null
@@ -1,123 +0,0 @@
----
-http_interactions:
-- request:
- method: post
- uri: https://api.github.com/graphql
- body:
- encoding: UTF-8
- string: '{"query":"query($username:String!) {\n user(login: $username) {\n pullRequests(states:
- OPEN last: 100) {\n nodes {\n id\n title\n body\n url\n createdAt\n labels(first:
- 100) {\n edges {\n node {\n name\n }\n }\n }\n }\n }\n }\n}\n","variables":{"username":"mkcode"}}'
- headers:
- User-Agent:
- - Faraday v0.12.2
- Authorization:
- - bearer
- Content-Type:
- - application/json
- Accept-Encoding:
- - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
- Accept:
- - "*/*"
- response:
- status:
- code: 200
- message: OK
- headers:
- Server:
- - GitHub.com
- Date:
- - Fri, 13 Sep 2019 20:08:21 GMT
- Content-Type:
- - application/json; charset=utf-8
- Transfer-Encoding:
- - chunked
- Status:
- - 200 OK
- Cache-Control:
- - no-cache
- X-Oauth-Scopes:
- - user:email
- X-Accepted-Oauth-Scopes:
- - repo
- X-Github-Media-Type:
- - github.v4; format=json
- X-Ratelimit-Limit:
- - '5000'
- X-Ratelimit-Remaining:
- - '4955'
- X-Ratelimit-Reset:
- - '1568408901'
- Access-Control-Expose-Headers:
- - ETag, Link, Location, Retry-After, X-GitHub-OTP, X-RateLimit-Limit, X-RateLimit-Remaining,
- X-RateLimit-Reset, X-OAuth-Scopes, X-Accepted-OAuth-Scopes, X-Poll-Interval,
- X-GitHub-Media-Type
- Access-Control-Allow-Origin:
- - "*"
- Strict-Transport-Security:
- - max-age=31536000; includeSubdomains; preload
- X-Frame-Options:
- - deny
- X-Content-Type-Options:
- - nosniff
- X-Xss-Protection:
- - 1; mode=block
- Referrer-Policy:
- - origin-when-cross-origin, strict-origin-when-cross-origin
- Content-Security-Policy:
- - default-src 'none'
- X-Github-Request-Id:
- - 70D2:49CE:850041:10B17FF:5D7BF735
- body:
- encoding: ASCII-8BIT
- string: '{"data":{"user":{"pullRequests":{"nodes":[{"id":"MDExOlB1bGxSZXF1ZXN0NTc5MDc4Mg==","title":"Upgraded
- to rails 3.2 stable","body":"Hi, I''m using this app as template for a new
- project. Wanted to get on rails 3.2 stable before I started. Here it is!\n\nCheers\n","url":"https://github.com/maccman/spine.rails3/pull/6","createdAt":"2013-05-17T23:05:41Z","labels":{"edges":[]}},{"id":"MDExOlB1bGxSZXF1ZXN0NDcxMDUxNzU=","title":"Delete
- repos cleanup","body":"@PeterDaveHello - Thanks for your contribution. I''m
- using this work as an opportunity to clean up how we are doing testing in
- this app. I see that you basically copied the format from the create_repos
- spec - which was a good move.\n\nAfter reworking this so I can understand
- what is happening in https://github.com/education/teachers_pet/commit/be8a8b1ddb3a8ef79a88f53f6bd05649417f0515,
- I notice that we are not stubbing any repo deletion requests - which then
- therefore would mean that these tests aren''t actually sending any API requests.\n\n@PeterDaveHello
- - these tests should be hitting a delete repo endpoint on the GitHub API,
- should they not? Can we rework them so that they do? These tests should fail
- in the case the we comment out the `teachers_pet(:delete_repos)`... block.\n\n/cc
- @johndbritton \n","url":"https://github.com/education/teachers_pet/pull/126","createdAt":"2015-10-08T02:24:19Z","labels":{"edges":[]}},{"id":"MDExOlB1bGxSZXF1ZXN0NDc0Nzk5ODQ=","title":"Results
- by cookie","body":"Hi @deski - Following up on our discussion in #78 \n\nThis
- PR adds info from the peek cookie as discussed. It does not save Peek results
- unless the peek cookie is enabled. Always sets the cookie if peek is enabled.\n\nIn
- the case Peek was not enabled for a request, and is toggled on, `Peek::Views`
- with a `data-defer-to` are hidden and a refresh message is displayed: \n\n![screen
- shot 2015-10-12 at 8 41 31 pm](https://cloud.githubusercontent.com/assets/283496/10442611/22bb6a2e-7122-11e5-8fb3-c3fb5ed333b7.png)\n","url":"https://github.com/peek/peek/pull/79","createdAt":"2015-10-13T00:46:43Z","labels":{"edges":[]}},{"id":"MDExOlB1bGxSZXF1ZXN0NTE0MTg4ODg=","title":"Update
- README.md","body":"Add maintenance note to readme\n","url":"https://github.com/vulume/Cordova-DBCamera/pull/1","createdAt":"2015-11-20T22:49:53Z","labels":{"edges":[]}},{"id":"MDExOlB1bGxSZXF1ZXN0NjkyNjE4Mjk=","title":"Add
- natural layer","body":"Adds the beginnings of a prose layer.\n\nReplaces #5403
- according to the discussion in #5996.\n","url":"https://github.com/syl20bnr/spacemacs/pull/6012","createdAt":"2016-05-08T06:24:38Z","labels":{"edges":[{"node":{"name":"New
- Layer"}}]}},{"id":"MDExOlB1bGxSZXF1ZXN0OTA4ODAzMzQ=","title":"Coercion type
- systems","body":"Introducing switchable type coercion systems for Hashie.
- Follows up on #239.\n\nAdds ''dry-types'' and ''activemodel'' alongside Hashie''s
- builtin coercion system. Basic usage is written up in the README.\n\nFor the
- most part, reading the source should be straight forward. The ''coercion''
- folder under ''extensions'' contains the implementation of the 3 coercion
- systems. The `Hashie::Extensions::Coercion` module was split into two files.
- The file itself contains the interface and common coercion methods, while
- the `Coercion::HashieTypes` class now contains the actual coercion implementation.\n\nThe
- only confusing part is the `CoercionSystemIncludeBuilder` defined under `Hashie::Extensions::Coercion`.
- The purpose of this class is to DRY up the included hooks for `Hashie::Extensions::Coercion`
- and `Hashie::Extensions::Dash::Coercion`. The common includes are defined
- once, and reused in the default `included` method and the `active_model` and
- `dry_types` methods on both the default and Dash coercion classes. The `active_model`
- and `dry_types` methods on `Hashie::Extensions::Coercion` and `Hashie::Extensions::Dash::Coercion`
- both return an anonymous module with an `included` method correctly defined,
- which then is immediately executed because it then included. \n\nExample:
- \n\n``` ruby\nmod = Hashie::Extensions::Coercion.dry_types\n# => \n\nmod.methods\n#=> [:included]\n\nclass MyHash < Hashie::Hash\n include
- mod\nend\n#=> Hashie::Extensions::Coercion::ClassMethods, Hashie::Extensions::Coercion::InstanceMethods,
- and Hashie::Extensions::Coercion::DryTypes are all mixed into MyHash\n```\n\nThis
- is 100% backwards compatible and all the tests pass. I did not add any additional
- tests - we should not need many as the new coercion systems are well tested
- in their own repos. We may want to add a few tests though.\n","url":"https://github.com/intridea/hashie/pull/379","createdAt":"2016-10-25T19:59:18Z","labels":{"edges":[{"node":{"name":"new
- feature"}}]}}]}}}}'
- http_version:
- recorded_at: Fri, 13 Sep 2019 20:08:21 GMT
-recorded_with: VCR 5.0.0
diff --git a/spec/vcr/User/_register/user_is_created_but_has_not_agreed_to_terms/disallows_the_user_to_enter_the_registered_state.yml b/spec/vcr/User/_register/user_is_created_but_has_not_agreed_to_terms/disallows_the_user_to_enter_the_registered_state.yml
deleted file mode 100644
index 05782f994..000000000
--- a/spec/vcr/User/_register/user_is_created_but_has_not_agreed_to_terms/disallows_the_user_to_enter_the_registered_state.yml
+++ /dev/null
@@ -1,125 +0,0 @@
----
-http_interactions:
-- request:
- method: post
- uri: https://api.github.com/graphql
- body:
- encoding: UTF-8
- string: '{"query":"query($username:String!) {\n user(login: $username) {\n pullRequests(states:
- OPEN last: 100) {\n nodes {\n id\n title\n body\n url\n createdAt\n labels(first:
- 100) {\n edges {\n node {\n name\n }\n }\n }\n }\n }\n }\n}\n","variables":{"username":"mkcode"}}'
- headers:
- User-Agent:
- - Faraday v0.12.2
- Authorization:
- - bearer
- Content-Type:
- - application/json
- Accept-Encoding:
- - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
- Accept:
- - "*/*"
- response:
- status:
- code: 200
- message: OK
- headers:
- Date:
- - Fri, 13 Sep 2019 19:58:00 GMT
- Content-Type:
- - application/json; charset=utf-8
- Transfer-Encoding:
- - chunked
- Server:
- - GitHub.com
- Status:
- - 200 OK
- Cache-Control:
- - no-cache
- X-Oauth-Scopes:
- - user:email
- X-Accepted-Oauth-Scopes:
- - repo
- X-Github-Media-Type:
- - github.v4; format=json
- X-Ratelimit-Limit:
- - '5000'
- X-Ratelimit-Remaining:
- - '4977'
- X-Ratelimit-Reset:
- - '1568408095'
- Access-Control-Expose-Headers:
- - ETag, Link, Location, Retry-After, X-GitHub-OTP, X-RateLimit-Limit, X-RateLimit-Remaining,
- X-RateLimit-Reset, X-OAuth-Scopes, X-Accepted-OAuth-Scopes, X-Poll-Interval,
- X-GitHub-Media-Type
- Access-Control-Allow-Origin:
- - "*"
- Strict-Transport-Security:
- - max-age=31536000; includeSubdomains; preload
- X-Frame-Options:
- - deny
- X-Content-Type-Options:
- - nosniff
- X-Xss-Protection:
- - 1; mode=block
- Referrer-Policy:
- - origin-when-cross-origin, strict-origin-when-cross-origin
- Content-Security-Policy:
- - default-src 'none'
- Vary:
- - Accept-Encoding
- X-Github-Request-Id:
- - 6FD7:08C0:2ABAA8:474ED6:5D7BF4C8
- body:
- encoding: ASCII-8BIT
- string: '{"data":{"user":{"pullRequests":{"nodes":[{"id":"MDExOlB1bGxSZXF1ZXN0NTc5MDc4Mg==","title":"Upgraded
- to rails 3.2 stable","body":"Hi, I''m using this app as template for a new
- project. Wanted to get on rails 3.2 stable before I started. Here it is!\n\nCheers\n","url":"https://github.com/maccman/spine.rails3/pull/6","createdAt":"2013-05-17T23:05:41Z","labels":{"edges":[]}},{"id":"MDExOlB1bGxSZXF1ZXN0NDcxMDUxNzU=","title":"Delete
- repos cleanup","body":"@PeterDaveHello - Thanks for your contribution. I''m
- using this work as an opportunity to clean up how we are doing testing in
- this app. I see that you basically copied the format from the create_repos
- spec - which was a good move.\n\nAfter reworking this so I can understand
- what is happening in https://github.com/education/teachers_pet/commit/be8a8b1ddb3a8ef79a88f53f6bd05649417f0515,
- I notice that we are not stubbing any repo deletion requests - which then
- therefore would mean that these tests aren''t actually sending any API requests.\n\n@PeterDaveHello
- - these tests should be hitting a delete repo endpoint on the GitHub API,
- should they not? Can we rework them so that they do? These tests should fail
- in the case the we comment out the `teachers_pet(:delete_repos)`... block.\n\n/cc
- @johndbritton \n","url":"https://github.com/education/teachers_pet/pull/126","createdAt":"2015-10-08T02:24:19Z","labels":{"edges":[]}},{"id":"MDExOlB1bGxSZXF1ZXN0NDc0Nzk5ODQ=","title":"Results
- by cookie","body":"Hi @deski - Following up on our discussion in #78 \n\nThis
- PR adds info from the peek cookie as discussed. It does not save Peek results
- unless the peek cookie is enabled. Always sets the cookie if peek is enabled.\n\nIn
- the case Peek was not enabled for a request, and is toggled on, `Peek::Views`
- with a `data-defer-to` are hidden and a refresh message is displayed: \n\n![screen
- shot 2015-10-12 at 8 41 31 pm](https://cloud.githubusercontent.com/assets/283496/10442611/22bb6a2e-7122-11e5-8fb3-c3fb5ed333b7.png)\n","url":"https://github.com/peek/peek/pull/79","createdAt":"2015-10-13T00:46:43Z","labels":{"edges":[]}},{"id":"MDExOlB1bGxSZXF1ZXN0NTE0MTg4ODg=","title":"Update
- README.md","body":"Add maintenance note to readme\n","url":"https://github.com/vulume/Cordova-DBCamera/pull/1","createdAt":"2015-11-20T22:49:53Z","labels":{"edges":[]}},{"id":"MDExOlB1bGxSZXF1ZXN0NjkyNjE4Mjk=","title":"Add
- natural layer","body":"Adds the beginnings of a prose layer.\n\nReplaces #5403
- according to the discussion in #5996.\n","url":"https://github.com/syl20bnr/spacemacs/pull/6012","createdAt":"2016-05-08T06:24:38Z","labels":{"edges":[{"node":{"name":"New
- Layer"}}]}},{"id":"MDExOlB1bGxSZXF1ZXN0OTA4ODAzMzQ=","title":"Coercion type
- systems","body":"Introducing switchable type coercion systems for Hashie.
- Follows up on #239.\n\nAdds ''dry-types'' and ''activemodel'' alongside Hashie''s
- builtin coercion system. Basic usage is written up in the README.\n\nFor the
- most part, reading the source should be straight forward. The ''coercion''
- folder under ''extensions'' contains the implementation of the 3 coercion
- systems. The `Hashie::Extensions::Coercion` module was split into two files.
- The file itself contains the interface and common coercion methods, while
- the `Coercion::HashieTypes` class now contains the actual coercion implementation.\n\nThe
- only confusing part is the `CoercionSystemIncludeBuilder` defined under `Hashie::Extensions::Coercion`.
- The purpose of this class is to DRY up the included hooks for `Hashie::Extensions::Coercion`
- and `Hashie::Extensions::Dash::Coercion`. The common includes are defined
- once, and reused in the default `included` method and the `active_model` and
- `dry_types` methods on both the default and Dash coercion classes. The `active_model`
- and `dry_types` methods on `Hashie::Extensions::Coercion` and `Hashie::Extensions::Dash::Coercion`
- both return an anonymous module with an `included` method correctly defined,
- which then is immediately executed because it then included. \n\nExample:
- \n\n``` ruby\nmod = Hashie::Extensions::Coercion.dry_types\n# => \n\nmod.methods\n#=> [:included]\n\nclass MyHash < Hashie::Hash\n include
- mod\nend\n#=> Hashie::Extensions::Coercion::ClassMethods, Hashie::Extensions::Coercion::InstanceMethods,
- and Hashie::Extensions::Coercion::DryTypes are all mixed into MyHash\n```\n\nThis
- is 100% backwards compatible and all the tests pass. I did not add any additional
- tests - we should not need many as the new coercion systems are well tested
- in their own repos. We may want to add a few tests though.\n","url":"https://github.com/intridea/hashie/pull/379","createdAt":"2016-10-25T19:59:18Z","labels":{"edges":[{"node":{"name":"new
- feature"}}]}}]}}}}'
- http_version:
- recorded_at: Fri, 13 Sep 2019 19:58:00 GMT
-recorded_with: VCR 5.0.0
diff --git a/spec/vcr/User/_wait/registered_user_has_4_open_prs/allows_the_user_to_enter_the_waiting_state.yml b/spec/vcr/User/_wait/registered_user_has_4_open_prs/allows_the_user_to_enter_the_waiting_state.yml
deleted file mode 100644
index 644492f36..000000000
--- a/spec/vcr/User/_wait/registered_user_has_4_open_prs/allows_the_user_to_enter_the_waiting_state.yml
+++ /dev/null
@@ -1,123 +0,0 @@
----
-http_interactions:
-- request:
- method: post
- uri: https://api.github.com/graphql
- body:
- encoding: UTF-8
- string: '{"query":"query($username:String!) {\n user(login: $username) {\n pullRequests(states:
- OPEN last: 100) {\n nodes {\n id\n title\n body\n url\n createdAt\n labels(first:
- 100) {\n edges {\n node {\n name\n }\n }\n }\n }\n }\n }\n}\n","variables":{"username":"mkcode"}}'
- headers:
- User-Agent:
- - Faraday v0.12.2
- Authorization:
- - bearer
- Content-Type:
- - application/json
- Accept-Encoding:
- - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
- Accept:
- - "*/*"
- response:
- status:
- code: 200
- message: OK
- headers:
- Server:
- - GitHub.com
- Date:
- - Fri, 13 Sep 2019 19:58:03 GMT
- Content-Type:
- - application/json; charset=utf-8
- Transfer-Encoding:
- - chunked
- Status:
- - 200 OK
- Cache-Control:
- - no-cache
- X-Oauth-Scopes:
- - user:email
- X-Accepted-Oauth-Scopes:
- - repo
- X-Github-Media-Type:
- - github.v4; format=json
- X-Ratelimit-Limit:
- - '5000'
- X-Ratelimit-Remaining:
- - '4969'
- X-Ratelimit-Reset:
- - '1568408095'
- Access-Control-Expose-Headers:
- - ETag, Link, Location, Retry-After, X-GitHub-OTP, X-RateLimit-Limit, X-RateLimit-Remaining,
- X-RateLimit-Reset, X-OAuth-Scopes, X-Accepted-OAuth-Scopes, X-Poll-Interval,
- X-GitHub-Media-Type
- Access-Control-Allow-Origin:
- - "*"
- Strict-Transport-Security:
- - max-age=31536000; includeSubdomains; preload
- X-Frame-Options:
- - deny
- X-Content-Type-Options:
- - nosniff
- X-Xss-Protection:
- - 1; mode=block
- Referrer-Policy:
- - origin-when-cross-origin, strict-origin-when-cross-origin
- Content-Security-Policy:
- - default-src 'none'
- X-Github-Request-Id:
- - 1ECE:7D2C:2550DE:3F40F6:5D7BF4CB
- body:
- encoding: ASCII-8BIT
- string: '{"data":{"user":{"pullRequests":{"nodes":[{"id":"MDExOlB1bGxSZXF1ZXN0NTc5MDc4Mg==","title":"Upgraded
- to rails 3.2 stable","body":"Hi, I''m using this app as template for a new
- project. Wanted to get on rails 3.2 stable before I started. Here it is!\n\nCheers\n","url":"https://github.com/maccman/spine.rails3/pull/6","createdAt":"2013-05-17T23:05:41Z","labels":{"edges":[]}},{"id":"MDExOlB1bGxSZXF1ZXN0NDcxMDUxNzU=","title":"Delete
- repos cleanup","body":"@PeterDaveHello - Thanks for your contribution. I''m
- using this work as an opportunity to clean up how we are doing testing in
- this app. I see that you basically copied the format from the create_repos
- spec - which was a good move.\n\nAfter reworking this so I can understand
- what is happening in https://github.com/education/teachers_pet/commit/be8a8b1ddb3a8ef79a88f53f6bd05649417f0515,
- I notice that we are not stubbing any repo deletion requests - which then
- therefore would mean that these tests aren''t actually sending any API requests.\n\n@PeterDaveHello
- - these tests should be hitting a delete repo endpoint on the GitHub API,
- should they not? Can we rework them so that they do? These tests should fail
- in the case the we comment out the `teachers_pet(:delete_repos)`... block.\n\n/cc
- @johndbritton \n","url":"https://github.com/education/teachers_pet/pull/126","createdAt":"2015-10-08T02:24:19Z","labels":{"edges":[]}},{"id":"MDExOlB1bGxSZXF1ZXN0NDc0Nzk5ODQ=","title":"Results
- by cookie","body":"Hi @deski - Following up on our discussion in #78 \n\nThis
- PR adds info from the peek cookie as discussed. It does not save Peek results
- unless the peek cookie is enabled. Always sets the cookie if peek is enabled.\n\nIn
- the case Peek was not enabled for a request, and is toggled on, `Peek::Views`
- with a `data-defer-to` are hidden and a refresh message is displayed: \n\n![screen
- shot 2015-10-12 at 8 41 31 pm](https://cloud.githubusercontent.com/assets/283496/10442611/22bb6a2e-7122-11e5-8fb3-c3fb5ed333b7.png)\n","url":"https://github.com/peek/peek/pull/79","createdAt":"2015-10-13T00:46:43Z","labels":{"edges":[]}},{"id":"MDExOlB1bGxSZXF1ZXN0NTE0MTg4ODg=","title":"Update
- README.md","body":"Add maintenance note to readme\n","url":"https://github.com/vulume/Cordova-DBCamera/pull/1","createdAt":"2015-11-20T22:49:53Z","labels":{"edges":[]}},{"id":"MDExOlB1bGxSZXF1ZXN0NjkyNjE4Mjk=","title":"Add
- natural layer","body":"Adds the beginnings of a prose layer.\n\nReplaces #5403
- according to the discussion in #5996.\n","url":"https://github.com/syl20bnr/spacemacs/pull/6012","createdAt":"2016-05-08T06:24:38Z","labels":{"edges":[{"node":{"name":"New
- Layer"}}]}},{"id":"MDExOlB1bGxSZXF1ZXN0OTA4ODAzMzQ=","title":"Coercion type
- systems","body":"Introducing switchable type coercion systems for Hashie.
- Follows up on #239.\n\nAdds ''dry-types'' and ''activemodel'' alongside Hashie''s
- builtin coercion system. Basic usage is written up in the README.\n\nFor the
- most part, reading the source should be straight forward. The ''coercion''
- folder under ''extensions'' contains the implementation of the 3 coercion
- systems. The `Hashie::Extensions::Coercion` module was split into two files.
- The file itself contains the interface and common coercion methods, while
- the `Coercion::HashieTypes` class now contains the actual coercion implementation.\n\nThe
- only confusing part is the `CoercionSystemIncludeBuilder` defined under `Hashie::Extensions::Coercion`.
- The purpose of this class is to DRY up the included hooks for `Hashie::Extensions::Coercion`
- and `Hashie::Extensions::Dash::Coercion`. The common includes are defined
- once, and reused in the default `included` method and the `active_model` and
- `dry_types` methods on both the default and Dash coercion classes. The `active_model`
- and `dry_types` methods on `Hashie::Extensions::Coercion` and `Hashie::Extensions::Dash::Coercion`
- both return an anonymous module with an `included` method correctly defined,
- which then is immediately executed because it then included. \n\nExample:
- \n\n``` ruby\nmod = Hashie::Extensions::Coercion.dry_types\n# => \n\nmod.methods\n#=> [:included]\n\nclass MyHash < Hashie::Hash\n include
- mod\nend\n#=> Hashie::Extensions::Coercion::ClassMethods, Hashie::Extensions::Coercion::InstanceMethods,
- and Hashie::Extensions::Coercion::DryTypes are all mixed into MyHash\n```\n\nThis
- is 100% backwards compatible and all the tests pass. I did not add any additional
- tests - we should not need many as the new coercion systems are well tested
- in their own repos. We may want to add a few tests though.\n","url":"https://github.com/intridea/hashie/pull/379","createdAt":"2016-10-25T19:59:18Z","labels":{"edges":[{"node":{"name":"new
- feature"}}]}}]}}}}'
- http_version:
- recorded_at: Fri, 13 Sep 2019 19:58:03 GMT
-recorded_with: VCR 5.0.0
diff --git a/spec/vcr/User/_wait/registered_user_has_4_open_prs/persists_the_waiting_state.yml b/spec/vcr/User/_wait/registered_user_has_4_open_prs/persists_the_waiting_state.yml
deleted file mode 100644
index d92733875..000000000
--- a/spec/vcr/User/_wait/registered_user_has_4_open_prs/persists_the_waiting_state.yml
+++ /dev/null
@@ -1,123 +0,0 @@
----
-http_interactions:
-- request:
- method: post
- uri: https://api.github.com/graphql
- body:
- encoding: UTF-8
- string: '{"query":"query($username:String!) {\n user(login: $username) {\n pullRequests(states:
- OPEN last: 100) {\n nodes {\n id\n title\n body\n url\n createdAt\n labels(first:
- 100) {\n edges {\n node {\n name\n }\n }\n }\n }\n }\n }\n}\n","variables":{"username":"mkcode"}}'
- headers:
- User-Agent:
- - Faraday v0.12.2
- Authorization:
- - bearer
- Content-Type:
- - application/json
- Accept-Encoding:
- - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
- Accept:
- - "*/*"
- response:
- status:
- code: 200
- message: OK
- headers:
- Server:
- - GitHub.com
- Date:
- - Fri, 13 Sep 2019 19:58:03 GMT
- Content-Type:
- - application/json; charset=utf-8
- Transfer-Encoding:
- - chunked
- Status:
- - 200 OK
- Cache-Control:
- - no-cache
- X-Oauth-Scopes:
- - user:email
- X-Accepted-Oauth-Scopes:
- - repo
- X-Github-Media-Type:
- - github.v4; format=json
- X-Ratelimit-Limit:
- - '5000'
- X-Ratelimit-Remaining:
- - '4968'
- X-Ratelimit-Reset:
- - '1568408095'
- Access-Control-Expose-Headers:
- - ETag, Link, Location, Retry-After, X-GitHub-OTP, X-RateLimit-Limit, X-RateLimit-Remaining,
- X-RateLimit-Reset, X-OAuth-Scopes, X-Accepted-OAuth-Scopes, X-Poll-Interval,
- X-GitHub-Media-Type
- Access-Control-Allow-Origin:
- - "*"
- Strict-Transport-Security:
- - max-age=31536000; includeSubdomains; preload
- X-Frame-Options:
- - deny
- X-Content-Type-Options:
- - nosniff
- X-Xss-Protection:
- - 1; mode=block
- Referrer-Policy:
- - origin-when-cross-origin, strict-origin-when-cross-origin
- Content-Security-Policy:
- - default-src 'none'
- X-Github-Request-Id:
- - 18B4:1F73:460CF:6B092:5D7BF4CB
- body:
- encoding: ASCII-8BIT
- string: '{"data":{"user":{"pullRequests":{"nodes":[{"id":"MDExOlB1bGxSZXF1ZXN0NTc5MDc4Mg==","title":"Upgraded
- to rails 3.2 stable","body":"Hi, I''m using this app as template for a new
- project. Wanted to get on rails 3.2 stable before I started. Here it is!\n\nCheers\n","url":"https://github.com/maccman/spine.rails3/pull/6","createdAt":"2013-05-17T23:05:41Z","labels":{"edges":[]}},{"id":"MDExOlB1bGxSZXF1ZXN0NDcxMDUxNzU=","title":"Delete
- repos cleanup","body":"@PeterDaveHello - Thanks for your contribution. I''m
- using this work as an opportunity to clean up how we are doing testing in
- this app. I see that you basically copied the format from the create_repos
- spec - which was a good move.\n\nAfter reworking this so I can understand
- what is happening in https://github.com/education/teachers_pet/commit/be8a8b1ddb3a8ef79a88f53f6bd05649417f0515,
- I notice that we are not stubbing any repo deletion requests - which then
- therefore would mean that these tests aren''t actually sending any API requests.\n\n@PeterDaveHello
- - these tests should be hitting a delete repo endpoint on the GitHub API,
- should they not? Can we rework them so that they do? These tests should fail
- in the case the we comment out the `teachers_pet(:delete_repos)`... block.\n\n/cc
- @johndbritton \n","url":"https://github.com/education/teachers_pet/pull/126","createdAt":"2015-10-08T02:24:19Z","labels":{"edges":[]}},{"id":"MDExOlB1bGxSZXF1ZXN0NDc0Nzk5ODQ=","title":"Results
- by cookie","body":"Hi @deski - Following up on our discussion in #78 \n\nThis
- PR adds info from the peek cookie as discussed. It does not save Peek results
- unless the peek cookie is enabled. Always sets the cookie if peek is enabled.\n\nIn
- the case Peek was not enabled for a request, and is toggled on, `Peek::Views`
- with a `data-defer-to` are hidden and a refresh message is displayed: \n\n![screen
- shot 2015-10-12 at 8 41 31 pm](https://cloud.githubusercontent.com/assets/283496/10442611/22bb6a2e-7122-11e5-8fb3-c3fb5ed333b7.png)\n","url":"https://github.com/peek/peek/pull/79","createdAt":"2015-10-13T00:46:43Z","labels":{"edges":[]}},{"id":"MDExOlB1bGxSZXF1ZXN0NTE0MTg4ODg=","title":"Update
- README.md","body":"Add maintenance note to readme\n","url":"https://github.com/vulume/Cordova-DBCamera/pull/1","createdAt":"2015-11-20T22:49:53Z","labels":{"edges":[]}},{"id":"MDExOlB1bGxSZXF1ZXN0NjkyNjE4Mjk=","title":"Add
- natural layer","body":"Adds the beginnings of a prose layer.\n\nReplaces #5403
- according to the discussion in #5996.\n","url":"https://github.com/syl20bnr/spacemacs/pull/6012","createdAt":"2016-05-08T06:24:38Z","labels":{"edges":[{"node":{"name":"New
- Layer"}}]}},{"id":"MDExOlB1bGxSZXF1ZXN0OTA4ODAzMzQ=","title":"Coercion type
- systems","body":"Introducing switchable type coercion systems for Hashie.
- Follows up on #239.\n\nAdds ''dry-types'' and ''activemodel'' alongside Hashie''s
- builtin coercion system. Basic usage is written up in the README.\n\nFor the
- most part, reading the source should be straight forward. The ''coercion''
- folder under ''extensions'' contains the implementation of the 3 coercion
- systems. The `Hashie::Extensions::Coercion` module was split into two files.
- The file itself contains the interface and common coercion methods, while
- the `Coercion::HashieTypes` class now contains the actual coercion implementation.\n\nThe
- only confusing part is the `CoercionSystemIncludeBuilder` defined under `Hashie::Extensions::Coercion`.
- The purpose of this class is to DRY up the included hooks for `Hashie::Extensions::Coercion`
- and `Hashie::Extensions::Dash::Coercion`. The common includes are defined
- once, and reused in the default `included` method and the `active_model` and
- `dry_types` methods on both the default and Dash coercion classes. The `active_model`
- and `dry_types` methods on `Hashie::Extensions::Coercion` and `Hashie::Extensions::Dash::Coercion`
- both return an anonymous module with an `included` method correctly defined,
- which then is immediately executed because it then included. \n\nExample:
- \n\n``` ruby\nmod = Hashie::Extensions::Coercion.dry_types\n# => \n\nmod.methods\n#=> [:included]\n\nclass MyHash < Hashie::Hash\n include
- mod\nend\n#=> Hashie::Extensions::Coercion::ClassMethods, Hashie::Extensions::Coercion::InstanceMethods,
- and Hashie::Extensions::Coercion::DryTypes are all mixed into MyHash\n```\n\nThis
- is 100% backwards compatible and all the tests pass. I did not add any additional
- tests - we should not need many as the new coercion systems are well tested
- in their own repos. We may want to add a few tests though.\n","url":"https://github.com/intridea/hashie/pull/379","createdAt":"2016-10-25T19:59:18Z","labels":{"edges":[{"node":{"name":"new
- feature"}}]}}]}}}}'
- http_version:
- recorded_at: Fri, 13 Sep 2019 19:58:03 GMT
-recorded_with: VCR 5.0.0
diff --git a/spec/vcr/User/_wait/registered_user_has_4_open_prs/user_can_enter_the_waiting_state.yml b/spec/vcr/User/_wait/registered_user_has_4_open_prs/user_can_enter_the_waiting_state.yml
deleted file mode 100644
index 19d128423..000000000
--- a/spec/vcr/User/_wait/registered_user_has_4_open_prs/user_can_enter_the_waiting_state.yml
+++ /dev/null
@@ -1,123 +0,0 @@
----
-http_interactions:
-- request:
- method: post
- uri: https://api.github.com/graphql
- body:
- encoding: UTF-8
- string: '{"query":"query($username:String!) {\n user(login: $username) {\n pullRequests(states:
- OPEN last: 100) {\n nodes {\n id\n title\n body\n url\n createdAt\n labels(first:
- 100) {\n edges {\n node {\n name\n }\n }\n }\n }\n }\n }\n}\n","variables":{"username":"mkcode"}}'
- headers:
- User-Agent:
- - Faraday v0.12.2
- Authorization:
- - bearer
- Content-Type:
- - application/json
- Accept-Encoding:
- - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
- Accept:
- - "*/*"
- response:
- status:
- code: 200
- message: OK
- headers:
- Server:
- - GitHub.com
- Date:
- - Fri, 13 Sep 2019 20:08:24 GMT
- Content-Type:
- - application/json; charset=utf-8
- Transfer-Encoding:
- - chunked
- Status:
- - 200 OK
- Cache-Control:
- - no-cache
- X-Oauth-Scopes:
- - user:email
- X-Accepted-Oauth-Scopes:
- - repo
- X-Github-Media-Type:
- - github.v4; format=json
- X-Ratelimit-Limit:
- - '5000'
- X-Ratelimit-Remaining:
- - '4948'
- X-Ratelimit-Reset:
- - '1568408901'
- Access-Control-Expose-Headers:
- - ETag, Link, Location, Retry-After, X-GitHub-OTP, X-RateLimit-Limit, X-RateLimit-Remaining,
- X-RateLimit-Reset, X-OAuth-Scopes, X-Accepted-OAuth-Scopes, X-Poll-Interval,
- X-GitHub-Media-Type
- Access-Control-Allow-Origin:
- - "*"
- Strict-Transport-Security:
- - max-age=31536000; includeSubdomains; preload
- X-Frame-Options:
- - deny
- X-Content-Type-Options:
- - nosniff
- X-Xss-Protection:
- - 1; mode=block
- Referrer-Policy:
- - origin-when-cross-origin, strict-origin-when-cross-origin
- Content-Security-Policy:
- - default-src 'none'
- X-Github-Request-Id:
- - 4FA9:41E2:A49E91:1436FC3:5D7BF737
- body:
- encoding: ASCII-8BIT
- string: '{"data":{"user":{"pullRequests":{"nodes":[{"id":"MDExOlB1bGxSZXF1ZXN0NTc5MDc4Mg==","title":"Upgraded
- to rails 3.2 stable","body":"Hi, I''m using this app as template for a new
- project. Wanted to get on rails 3.2 stable before I started. Here it is!\n\nCheers\n","url":"https://github.com/maccman/spine.rails3/pull/6","createdAt":"2013-05-17T23:05:41Z","labels":{"edges":[]}},{"id":"MDExOlB1bGxSZXF1ZXN0NDcxMDUxNzU=","title":"Delete
- repos cleanup","body":"@PeterDaveHello - Thanks for your contribution. I''m
- using this work as an opportunity to clean up how we are doing testing in
- this app. I see that you basically copied the format from the create_repos
- spec - which was a good move.\n\nAfter reworking this so I can understand
- what is happening in https://github.com/education/teachers_pet/commit/be8a8b1ddb3a8ef79a88f53f6bd05649417f0515,
- I notice that we are not stubbing any repo deletion requests - which then
- therefore would mean that these tests aren''t actually sending any API requests.\n\n@PeterDaveHello
- - these tests should be hitting a delete repo endpoint on the GitHub API,
- should they not? Can we rework them so that they do? These tests should fail
- in the case the we comment out the `teachers_pet(:delete_repos)`... block.\n\n/cc
- @johndbritton \n","url":"https://github.com/education/teachers_pet/pull/126","createdAt":"2015-10-08T02:24:19Z","labels":{"edges":[]}},{"id":"MDExOlB1bGxSZXF1ZXN0NDc0Nzk5ODQ=","title":"Results
- by cookie","body":"Hi @deski - Following up on our discussion in #78 \n\nThis
- PR adds info from the peek cookie as discussed. It does not save Peek results
- unless the peek cookie is enabled. Always sets the cookie if peek is enabled.\n\nIn
- the case Peek was not enabled for a request, and is toggled on, `Peek::Views`
- with a `data-defer-to` are hidden and a refresh message is displayed: \n\n![screen
- shot 2015-10-12 at 8 41 31 pm](https://cloud.githubusercontent.com/assets/283496/10442611/22bb6a2e-7122-11e5-8fb3-c3fb5ed333b7.png)\n","url":"https://github.com/peek/peek/pull/79","createdAt":"2015-10-13T00:46:43Z","labels":{"edges":[]}},{"id":"MDExOlB1bGxSZXF1ZXN0NTE0MTg4ODg=","title":"Update
- README.md","body":"Add maintenance note to readme\n","url":"https://github.com/vulume/Cordova-DBCamera/pull/1","createdAt":"2015-11-20T22:49:53Z","labels":{"edges":[]}},{"id":"MDExOlB1bGxSZXF1ZXN0NjkyNjE4Mjk=","title":"Add
- natural layer","body":"Adds the beginnings of a prose layer.\n\nReplaces #5403
- according to the discussion in #5996.\n","url":"https://github.com/syl20bnr/spacemacs/pull/6012","createdAt":"2016-05-08T06:24:38Z","labels":{"edges":[{"node":{"name":"New
- Layer"}}]}},{"id":"MDExOlB1bGxSZXF1ZXN0OTA4ODAzMzQ=","title":"Coercion type
- systems","body":"Introducing switchable type coercion systems for Hashie.
- Follows up on #239.\n\nAdds ''dry-types'' and ''activemodel'' alongside Hashie''s
- builtin coercion system. Basic usage is written up in the README.\n\nFor the
- most part, reading the source should be straight forward. The ''coercion''
- folder under ''extensions'' contains the implementation of the 3 coercion
- systems. The `Hashie::Extensions::Coercion` module was split into two files.
- The file itself contains the interface and common coercion methods, while
- the `Coercion::HashieTypes` class now contains the actual coercion implementation.\n\nThe
- only confusing part is the `CoercionSystemIncludeBuilder` defined under `Hashie::Extensions::Coercion`.
- The purpose of this class is to DRY up the included hooks for `Hashie::Extensions::Coercion`
- and `Hashie::Extensions::Dash::Coercion`. The common includes are defined
- once, and reused in the default `included` method and the `active_model` and
- `dry_types` methods on both the default and Dash coercion classes. The `active_model`
- and `dry_types` methods on `Hashie::Extensions::Coercion` and `Hashie::Extensions::Dash::Coercion`
- both return an anonymous module with an `included` method correctly defined,
- which then is immediately executed because it then included. \n\nExample:
- \n\n``` ruby\nmod = Hashie::Extensions::Coercion.dry_types\n# => \n\nmod.methods\n#=> [:included]\n\nclass MyHash < Hashie::Hash\n include
- mod\nend\n#=> Hashie::Extensions::Coercion::ClassMethods, Hashie::Extensions::Coercion::InstanceMethods,
- and Hashie::Extensions::Coercion::DryTypes are all mixed into MyHash\n```\n\nThis
- is 100% backwards compatible and all the tests pass. I did not add any additional
- tests - we should not need many as the new coercion systems are well tested
- in their own repos. We may want to add a few tests though.\n","url":"https://github.com/intridea/hashie/pull/379","createdAt":"2016-10-25T19:59:18Z","labels":{"edges":[{"node":{"name":"new
- feature"}}]}}]}}}}'
- http_version:
- recorded_at: Fri, 13 Sep 2019 20:08:24 GMT
-recorded_with: VCR 5.0.0
diff --git a/spec/vcr/User/_wait/registered_user_has_less_than_4_open_prs/adds_the_correct_errors_to_the_user.yml b/spec/vcr/User/_wait/registered_user_has_less_than_4_open_prs/adds_the_correct_errors_to_the_user.yml
deleted file mode 100644
index 0a4a12055..000000000
--- a/spec/vcr/User/_wait/registered_user_has_less_than_4_open_prs/adds_the_correct_errors_to_the_user.yml
+++ /dev/null
@@ -1,125 +0,0 @@
----
-http_interactions:
-- request:
- method: post
- uri: https://api.github.com/graphql
- body:
- encoding: UTF-8
- string: '{"query":"query($username:String!) {\n user(login: $username) {\n pullRequests(states:
- OPEN last: 100) {\n nodes {\n id\n title\n body\n url\n createdAt\n labels(first:
- 100) {\n edges {\n node {\n name\n }\n }\n }\n }\n }\n }\n}\n","variables":{"username":"mkcode"}}'
- headers:
- User-Agent:
- - Faraday v0.12.2
- Authorization:
- - bearer
- Content-Type:
- - application/json
- Accept-Encoding:
- - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
- Accept:
- - "*/*"
- response:
- status:
- code: 200
- message: OK
- headers:
- Date:
- - Fri, 13 Sep 2019 19:58:04 GMT
- Content-Type:
- - application/json; charset=utf-8
- Transfer-Encoding:
- - chunked
- Server:
- - GitHub.com
- Status:
- - 200 OK
- Cache-Control:
- - no-cache
- X-Oauth-Scopes:
- - user:email
- X-Accepted-Oauth-Scopes:
- - repo
- X-Github-Media-Type:
- - github.v4; format=json
- X-Ratelimit-Limit:
- - '5000'
- X-Ratelimit-Remaining:
- - '4966'
- X-Ratelimit-Reset:
- - '1568408095'
- Access-Control-Expose-Headers:
- - ETag, Link, Location, Retry-After, X-GitHub-OTP, X-RateLimit-Limit, X-RateLimit-Remaining,
- X-RateLimit-Reset, X-OAuth-Scopes, X-Accepted-OAuth-Scopes, X-Poll-Interval,
- X-GitHub-Media-Type
- Access-Control-Allow-Origin:
- - "*"
- Strict-Transport-Security:
- - max-age=31536000; includeSubdomains; preload
- X-Frame-Options:
- - deny
- X-Content-Type-Options:
- - nosniff
- X-Xss-Protection:
- - 1; mode=block
- Referrer-Policy:
- - origin-when-cross-origin, strict-origin-when-cross-origin
- Content-Security-Policy:
- - default-src 'none'
- Vary:
- - Accept-Encoding
- X-Github-Request-Id:
- - 1479:7294:2353AF:3D5FEB:5D7BF4CC
- body:
- encoding: ASCII-8BIT
- string: '{"data":{"user":{"pullRequests":{"nodes":[{"id":"MDExOlB1bGxSZXF1ZXN0NTc5MDc4Mg==","title":"Upgraded
- to rails 3.2 stable","body":"Hi, I''m using this app as template for a new
- project. Wanted to get on rails 3.2 stable before I started. Here it is!\n\nCheers\n","url":"https://github.com/maccman/spine.rails3/pull/6","createdAt":"2013-05-17T23:05:41Z","labels":{"edges":[]}},{"id":"MDExOlB1bGxSZXF1ZXN0NDcxMDUxNzU=","title":"Delete
- repos cleanup","body":"@PeterDaveHello - Thanks for your contribution. I''m
- using this work as an opportunity to clean up how we are doing testing in
- this app. I see that you basically copied the format from the create_repos
- spec - which was a good move.\n\nAfter reworking this so I can understand
- what is happening in https://github.com/education/teachers_pet/commit/be8a8b1ddb3a8ef79a88f53f6bd05649417f0515,
- I notice that we are not stubbing any repo deletion requests - which then
- therefore would mean that these tests aren''t actually sending any API requests.\n\n@PeterDaveHello
- - these tests should be hitting a delete repo endpoint on the GitHub API,
- should they not? Can we rework them so that they do? These tests should fail
- in the case the we comment out the `teachers_pet(:delete_repos)`... block.\n\n/cc
- @johndbritton \n","url":"https://github.com/education/teachers_pet/pull/126","createdAt":"2015-10-08T02:24:19Z","labels":{"edges":[]}},{"id":"MDExOlB1bGxSZXF1ZXN0NDc0Nzk5ODQ=","title":"Results
- by cookie","body":"Hi @deski - Following up on our discussion in #78 \n\nThis
- PR adds info from the peek cookie as discussed. It does not save Peek results
- unless the peek cookie is enabled. Always sets the cookie if peek is enabled.\n\nIn
- the case Peek was not enabled for a request, and is toggled on, `Peek::Views`
- with a `data-defer-to` are hidden and a refresh message is displayed: \n\n![screen
- shot 2015-10-12 at 8 41 31 pm](https://cloud.githubusercontent.com/assets/283496/10442611/22bb6a2e-7122-11e5-8fb3-c3fb5ed333b7.png)\n","url":"https://github.com/peek/peek/pull/79","createdAt":"2015-10-13T00:46:43Z","labels":{"edges":[]}},{"id":"MDExOlB1bGxSZXF1ZXN0NTE0MTg4ODg=","title":"Update
- README.md","body":"Add maintenance note to readme\n","url":"https://github.com/vulume/Cordova-DBCamera/pull/1","createdAt":"2015-11-20T22:49:53Z","labels":{"edges":[]}},{"id":"MDExOlB1bGxSZXF1ZXN0NjkyNjE4Mjk=","title":"Add
- natural layer","body":"Adds the beginnings of a prose layer.\n\nReplaces #5403
- according to the discussion in #5996.\n","url":"https://github.com/syl20bnr/spacemacs/pull/6012","createdAt":"2016-05-08T06:24:38Z","labels":{"edges":[{"node":{"name":"New
- Layer"}}]}},{"id":"MDExOlB1bGxSZXF1ZXN0OTA4ODAzMzQ=","title":"Coercion type
- systems","body":"Introducing switchable type coercion systems for Hashie.
- Follows up on #239.\n\nAdds ''dry-types'' and ''activemodel'' alongside Hashie''s
- builtin coercion system. Basic usage is written up in the README.\n\nFor the
- most part, reading the source should be straight forward. The ''coercion''
- folder under ''extensions'' contains the implementation of the 3 coercion
- systems. The `Hashie::Extensions::Coercion` module was split into two files.
- The file itself contains the interface and common coercion methods, while
- the `Coercion::HashieTypes` class now contains the actual coercion implementation.\n\nThe
- only confusing part is the `CoercionSystemIncludeBuilder` defined under `Hashie::Extensions::Coercion`.
- The purpose of this class is to DRY up the included hooks for `Hashie::Extensions::Coercion`
- and `Hashie::Extensions::Dash::Coercion`. The common includes are defined
- once, and reused in the default `included` method and the `active_model` and
- `dry_types` methods on both the default and Dash coercion classes. The `active_model`
- and `dry_types` methods on `Hashie::Extensions::Coercion` and `Hashie::Extensions::Dash::Coercion`
- both return an anonymous module with an `included` method correctly defined,
- which then is immediately executed because it then included. \n\nExample:
- \n\n``` ruby\nmod = Hashie::Extensions::Coercion.dry_types\n# => \n\nmod.methods\n#=> [:included]\n\nclass MyHash < Hashie::Hash\n include
- mod\nend\n#=> Hashie::Extensions::Coercion::ClassMethods, Hashie::Extensions::Coercion::InstanceMethods,
- and Hashie::Extensions::Coercion::DryTypes are all mixed into MyHash\n```\n\nThis
- is 100% backwards compatible and all the tests pass. I did not add any additional
- tests - we should not need many as the new coercion systems are well tested
- in their own repos. We may want to add a few tests though.\n","url":"https://github.com/intridea/hashie/pull/379","createdAt":"2016-10-25T19:59:18Z","labels":{"edges":[{"node":{"name":"new
- feature"}}]}}]}}}}'
- http_version:
- recorded_at: Fri, 13 Sep 2019 19:58:04 GMT
-recorded_with: VCR 5.0.0
diff --git a/spec/vcr/User/_wait/registered_user_has_less_than_4_open_prs/adds_the_correct_errors_to_user.yml b/spec/vcr/User/_wait/registered_user_has_less_than_4_open_prs/adds_the_correct_errors_to_user.yml
deleted file mode 100644
index 1951d2c7d..000000000
--- a/spec/vcr/User/_wait/registered_user_has_less_than_4_open_prs/adds_the_correct_errors_to_user.yml
+++ /dev/null
@@ -1,163 +0,0 @@
----
-http_interactions:
-- request:
- method: post
- uri: https://api.github.com/graphql
- body:
- encoding: UTF-8
- string: '{"query":"query($username:String!) {\n user(login: $username) {\n pullRequests(states:
- OPEN last: 100) {\n nodes {\n id\n title\n body\n url\n createdAt\n labels(first:
- 100) {\n edges {\n node {\n name\n }\n }\n }\n }\n }\n }\n}\n","variables":{"username":"mkcode"}}'
- headers:
- User-Agent:
- - Faraday v0.12.2
- Authorization:
- - bearer
- Content-Type:
- - application/json
- Accept-Encoding:
- - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
- Accept:
- - "*/*"
- response:
- status:
- code: 200
- message: OK
- headers:
- Server:
- - GitHub.com
- Date:
- - Fri, 13 Sep 2019 20:08:24 GMT
- Content-Type:
- - application/json; charset=utf-8
- Transfer-Encoding:
- - chunked
- Status:
- - 200 OK
- Cache-Control:
- - no-cache
- X-Oauth-Scopes:
- - user:email
- X-Accepted-Oauth-Scopes:
- - repo
- X-Github-Media-Type:
- - github.v4; format=json
- X-Ratelimit-Limit:
- - '5000'
- X-Ratelimit-Remaining:
- - '4946'
- X-Ratelimit-Reset:
- - '1568408901'
- Access-Control-Expose-Headers:
- - ETag, Link, Location, Retry-After, X-GitHub-OTP, X-RateLimit-Limit, X-RateLimit-Remaining,
- X-RateLimit-Reset, X-OAuth-Scopes, X-Accepted-OAuth-Scopes, X-Poll-Interval,
- X-GitHub-Media-Type
- Access-Control-Allow-Origin:
- - "*"
- Strict-Transport-Security:
- - max-age=31536000; includeSubdomains; preload
- X-Frame-Options:
- - deny
- X-Content-Type-Options:
- - nosniff
- X-Xss-Protection:
- - 1; mode=block
- Referrer-Policy:
- - origin-when-cross-origin, strict-origin-when-cross-origin
- Content-Security-Policy:
- - default-src 'none'
- X-Github-Request-Id:
- - 715E:4E91:548E1A:C360E2:5D7BF738
- body:
- encoding: ASCII-8BIT
- string: '{"data":{"user":{"pullRequests":{"nodes":[{"id":"MDExOlB1bGxSZXF1ZXN0NTc5MDc4Mg==","title":"Upgraded
- to rails 3.2 stable","body":"Hi, I''m using this app as template for a new
- project. Wanted to get on rails 3.2 stable before I started. Here it is!\n\nCheers\n","url":"https://github.com/maccman/spine.rails3/pull/6","createdAt":"2013-05-17T23:05:41Z","labels":{"edges":[]}},{"id":"MDExOlB1bGxSZXF1ZXN0NDcxMDUxNzU=","title":"Delete
- repos cleanup","body":"@PeterDaveHello - Thanks for your contribution. I''m
- using this work as an opportunity to clean up how we are doing testing in
- this app. I see that you basically copied the format from the create_repos
- spec - which was a good move.\n\nAfter reworking this so I can understand
- what is happening in https://github.com/education/teachers_pet/commit/be8a8b1ddb3a8ef79a88f53f6bd05649417f0515,
- I notice that we are not stubbing any repo deletion requests - which then
- therefore would mean that these tests aren''t actually sending any API requests.\n\n@PeterDaveHello
- - these tests should be hitting a delete repo endpoint on the GitHub API,
- should they not? Can we rework them so that they do? These tests should fail
- in the case the we comment out the `teachers_pet(:delete_repos)`... block.\n\n/cc
- @johndbritton \n","url":"https://github.com/education/teachers_pet/pull/126","createdAt":"2015-10-08T02:24:19Z","labels":{"edges":[]}},{"id":"MDExOlB1bGxSZXF1ZXN0NDc0Nzk5ODQ=","title":"Results
- by cookie","body":"Hi @deski - Following up on our discussion in #78 \n\nThis
- PR adds info from the peek cookie as discussed. It does not save Peek results
- unless the peek cookie is enabled. Always sets the cookie if peek is enabled.\n\nIn
- the case Peek was not enabled for a request, and is toggled on, `Peek::Views`
- with a `data-defer-to` are hidden and a refresh message is displayed: \n\n![screen
- shot 2015-10-12 at 8 41 31 pm](https://cloud.githubusercontent.com/assets/283496/10442611/22bb6a2e-7122-11e5-8fb3-c3fb5ed333b7.png)\n","url":"https://github.com/peek/peek/pull/79","createdAt":"2015-10-13T00:46:43Z","labels":{"edges":[]}},{"id":"MDExOlB1bGxSZXF1ZXN0NTE0MTg4ODg=","title":"Update
- README.md","body":"Add maintenance note to readme\n","url":"https://github.com/vulume/Cordova-DBCamera/pull/1","createdAt":"2015-11-20T22:49:53Z","labels":{"edges":[]}},{"id":"MDExOlB1bGxSZXF1ZXN0NjkyNjE4Mjk=","title":"Add
- natural layer","body":"Adds the beginnings of a prose layer.\n\nReplaces #5403
- according to the discussion in #5996.\n","url":"https://github.com/syl20bnr/spacemacs/pull/6012","createdAt":"2016-05-08T06:24:38Z","labels":{"edges":[{"node":{"name":"New
- Layer"}}]}},{"id":"MDExOlB1bGxSZXF1ZXN0OTA4ODAzMzQ=","title":"Coercion type
- systems","body":"Introducing switchable type coercion systems for Hashie.
- Follows up on #239.\n\nAdds ''dry-types'' and ''activemodel'' alongside Hashie''s
- builtin coercion system. Basic usage is written up in the README.\n\nFor the
- most part, reading the source should be straight forward. The ''coercion''
- folder under ''extensions'' contains the implementation of the 3 coercion
- systems. The `Hashie::Extensions::Coercion` module was split into two files.
- The file itself contains the interface and common coercion methods, while
- the `Coercion::HashieTypes` class now contains the actual coercion implementation.\n\nThe
- only confusing part is the `CoercionSystemIncludeBuilder` defined under `Hashie::Extensions::Coercion`.
- The purpose of this class is to DRY up the included hooks for `Hashie::Extensions::Coercion`
- and `Hashie::Extensions::Dash::Coercion`. The common includes are defined
- once, and reused in the default `included` method and the `active_model` and
- `dry_types` methods on both the default and Dash coercion classes. The `active_model`
- and `dry_types` methods on `Hashie::Extensions::Coercion` and `Hashie::Extensions::Dash::Coercion`
- both return an anonymous module with an `included` method correctly defined,
- which then is immediately executed because it then included. \n\nExample:
- \n\n``` ruby\nmod = Hashie::Extensions::Coercion.dry_types\n# => \n\nmod.methods\n#=> [:included]\n\nclass MyHash < Hashie::Hash\n include
- mod\nend\n#=> Hashie::Extensions::Coercion::ClassMethods, Hashie::Extensions::Coercion::InstanceMethods,
- and Hashie::Extensions::Coercion::DryTypes are all mixed into MyHash\n```\n\nThis
- is 100% backwards compatible and all the tests pass. I did not add any additional
- tests - we should not need many as the new coercion systems are well tested
- in their own repos. We may want to add a few tests though.\n","url":"https://github.com/intridea/hashie/pull/379","createdAt":"2016-10-25T19:59:18Z","labels":{"edges":[{"node":{"name":"new
- feature"}}]}}]}}}}'
- http_version:
- recorded_at: Fri, 13 Sep 2019 20:08:24 GMT
-- request:
- method: post
- uri: https://api.segment.io/v1/import
- body:
- encoding: UTF-8
- string: '{"sentAt":"2019-09-13T16:09:30.456-04:00","batch":[{"userId":1,"anonymousId":null,"integrations":null,"context":{"library":{"name":"analytics-ruby","version":"2.0.13"}},"traits":{"pull_requests_count":0},"options":null,"timestamp":"2019-09-13T16:09:30.456-04:00","type":"identify","messageId":"91207162-3f8e-4e07-b81b-377a06bb8235"}]}'
- headers:
- Content-Type:
- - application/json
- Accept:
- - application/json
- Accept-Encoding:
- - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
- User-Agent:
- - Ruby
- Authorization:
- - Basic NWw3czVyTVl0T3doWUNZMDBTcnIzMTYzWkZmR2N5ZVQ6
- response:
- status:
- code: 200
- message: OK
- headers:
- Date:
- - Fri, 13 Sep 2019 20:09:30 GMT
- Content-Type:
- - application/json
- Content-Length:
- - '21'
- Connection:
- - keep-alive
- Vary:
- - Origin
- body:
- encoding: UTF-8
- string: |-
- {
- "success": true
- }
- http_version:
- recorded_at: Fri, 13 Sep 2019 20:09:30 GMT
-recorded_with: VCR 5.0.0
diff --git a/spec/vcr/User/_wait/registered_user_has_less_than_4_open_prs/dcan_t_enter_the_waiting_state.yml b/spec/vcr/User/_wait/registered_user_has_less_than_4_open_prs/dcan_t_enter_the_waiting_state.yml
deleted file mode 100644
index b740b247d..000000000
--- a/spec/vcr/User/_wait/registered_user_has_less_than_4_open_prs/dcan_t_enter_the_waiting_state.yml
+++ /dev/null
@@ -1,163 +0,0 @@
----
-http_interactions:
-- request:
- method: post
- uri: https://api.github.com/graphql
- body:
- encoding: UTF-8
- string: '{"query":"query($username:String!) {\n user(login: $username) {\n pullRequests(states:
- OPEN last: 100) {\n nodes {\n id\n title\n body\n url\n createdAt\n labels(first:
- 100) {\n edges {\n node {\n name\n }\n }\n }\n }\n }\n }\n}\n","variables":{"username":"mkcode"}}'
- headers:
- User-Agent:
- - Faraday v0.12.2
- Authorization:
- - bearer
- Content-Type:
- - application/json
- Accept-Encoding:
- - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
- Accept:
- - "*/*"
- response:
- status:
- code: 200
- message: OK
- headers:
- Server:
- - GitHub.com
- Date:
- - Fri, 13 Sep 2019 20:08:24 GMT
- Content-Type:
- - application/json; charset=utf-8
- Transfer-Encoding:
- - chunked
- Status:
- - 200 OK
- Cache-Control:
- - no-cache
- X-Oauth-Scopes:
- - user:email
- X-Accepted-Oauth-Scopes:
- - repo
- X-Github-Media-Type:
- - github.v4; format=json
- X-Ratelimit-Limit:
- - '5000'
- X-Ratelimit-Remaining:
- - '4947'
- X-Ratelimit-Reset:
- - '1568408901'
- Access-Control-Expose-Headers:
- - ETag, Link, Location, Retry-After, X-GitHub-OTP, X-RateLimit-Limit, X-RateLimit-Remaining,
- X-RateLimit-Reset, X-OAuth-Scopes, X-Accepted-OAuth-Scopes, X-Poll-Interval,
- X-GitHub-Media-Type
- Access-Control-Allow-Origin:
- - "*"
- Strict-Transport-Security:
- - max-age=31536000; includeSubdomains; preload
- X-Frame-Options:
- - deny
- X-Content-Type-Options:
- - nosniff
- X-Xss-Protection:
- - 1; mode=block
- Referrer-Policy:
- - origin-when-cross-origin, strict-origin-when-cross-origin
- Content-Security-Policy:
- - default-src 'none'
- X-Github-Request-Id:
- - 2870:6D55:4EA732:B9DD38:5D7BF738
- body:
- encoding: ASCII-8BIT
- string: '{"data":{"user":{"pullRequests":{"nodes":[{"id":"MDExOlB1bGxSZXF1ZXN0NTc5MDc4Mg==","title":"Upgraded
- to rails 3.2 stable","body":"Hi, I''m using this app as template for a new
- project. Wanted to get on rails 3.2 stable before I started. Here it is!\n\nCheers\n","url":"https://github.com/maccman/spine.rails3/pull/6","createdAt":"2013-05-17T23:05:41Z","labels":{"edges":[]}},{"id":"MDExOlB1bGxSZXF1ZXN0NDcxMDUxNzU=","title":"Delete
- repos cleanup","body":"@PeterDaveHello - Thanks for your contribution. I''m
- using this work as an opportunity to clean up how we are doing testing in
- this app. I see that you basically copied the format from the create_repos
- spec - which was a good move.\n\nAfter reworking this so I can understand
- what is happening in https://github.com/education/teachers_pet/commit/be8a8b1ddb3a8ef79a88f53f6bd05649417f0515,
- I notice that we are not stubbing any repo deletion requests - which then
- therefore would mean that these tests aren''t actually sending any API requests.\n\n@PeterDaveHello
- - these tests should be hitting a delete repo endpoint on the GitHub API,
- should they not? Can we rework them so that they do? These tests should fail
- in the case the we comment out the `teachers_pet(:delete_repos)`... block.\n\n/cc
- @johndbritton \n","url":"https://github.com/education/teachers_pet/pull/126","createdAt":"2015-10-08T02:24:19Z","labels":{"edges":[]}},{"id":"MDExOlB1bGxSZXF1ZXN0NDc0Nzk5ODQ=","title":"Results
- by cookie","body":"Hi @deski - Following up on our discussion in #78 \n\nThis
- PR adds info from the peek cookie as discussed. It does not save Peek results
- unless the peek cookie is enabled. Always sets the cookie if peek is enabled.\n\nIn
- the case Peek was not enabled for a request, and is toggled on, `Peek::Views`
- with a `data-defer-to` are hidden and a refresh message is displayed: \n\n![screen
- shot 2015-10-12 at 8 41 31 pm](https://cloud.githubusercontent.com/assets/283496/10442611/22bb6a2e-7122-11e5-8fb3-c3fb5ed333b7.png)\n","url":"https://github.com/peek/peek/pull/79","createdAt":"2015-10-13T00:46:43Z","labels":{"edges":[]}},{"id":"MDExOlB1bGxSZXF1ZXN0NTE0MTg4ODg=","title":"Update
- README.md","body":"Add maintenance note to readme\n","url":"https://github.com/vulume/Cordova-DBCamera/pull/1","createdAt":"2015-11-20T22:49:53Z","labels":{"edges":[]}},{"id":"MDExOlB1bGxSZXF1ZXN0NjkyNjE4Mjk=","title":"Add
- natural layer","body":"Adds the beginnings of a prose layer.\n\nReplaces #5403
- according to the discussion in #5996.\n","url":"https://github.com/syl20bnr/spacemacs/pull/6012","createdAt":"2016-05-08T06:24:38Z","labels":{"edges":[{"node":{"name":"New
- Layer"}}]}},{"id":"MDExOlB1bGxSZXF1ZXN0OTA4ODAzMzQ=","title":"Coercion type
- systems","body":"Introducing switchable type coercion systems for Hashie.
- Follows up on #239.\n\nAdds ''dry-types'' and ''activemodel'' alongside Hashie''s
- builtin coercion system. Basic usage is written up in the README.\n\nFor the
- most part, reading the source should be straight forward. The ''coercion''
- folder under ''extensions'' contains the implementation of the 3 coercion
- systems. The `Hashie::Extensions::Coercion` module was split into two files.
- The file itself contains the interface and common coercion methods, while
- the `Coercion::HashieTypes` class now contains the actual coercion implementation.\n\nThe
- only confusing part is the `CoercionSystemIncludeBuilder` defined under `Hashie::Extensions::Coercion`.
- The purpose of this class is to DRY up the included hooks for `Hashie::Extensions::Coercion`
- and `Hashie::Extensions::Dash::Coercion`. The common includes are defined
- once, and reused in the default `included` method and the `active_model` and
- `dry_types` methods on both the default and Dash coercion classes. The `active_model`
- and `dry_types` methods on `Hashie::Extensions::Coercion` and `Hashie::Extensions::Dash::Coercion`
- both return an anonymous module with an `included` method correctly defined,
- which then is immediately executed because it then included. \n\nExample:
- \n\n``` ruby\nmod = Hashie::Extensions::Coercion.dry_types\n# => \n\nmod.methods\n#=> [:included]\n\nclass MyHash < Hashie::Hash\n include
- mod\nend\n#=> Hashie::Extensions::Coercion::ClassMethods, Hashie::Extensions::Coercion::InstanceMethods,
- and Hashie::Extensions::Coercion::DryTypes are all mixed into MyHash\n```\n\nThis
- is 100% backwards compatible and all the tests pass. I did not add any additional
- tests - we should not need many as the new coercion systems are well tested
- in their own repos. We may want to add a few tests though.\n","url":"https://github.com/intridea/hashie/pull/379","createdAt":"2016-10-25T19:59:18Z","labels":{"edges":[{"node":{"name":"new
- feature"}}]}}]}}}}'
- http_version:
- recorded_at: Fri, 13 Sep 2019 20:08:24 GMT
-- request:
- method: post
- uri: https://api.segment.io/v1/import
- body:
- encoding: UTF-8
- string: '{"sentAt":"2019-09-13T16:12:34.411-04:00","batch":[{"userId":1,"anonymousId":null,"integrations":null,"context":{"library":{"name":"analytics-ruby","version":"2.0.13"}},"traits":{"pull_requests_count":0},"options":null,"timestamp":"2019-09-13T16:12:34.410-04:00","type":"identify","messageId":"61e929a4-4ae7-452e-8d5d-f91785ca9e43"}]}'
- headers:
- Content-Type:
- - application/json
- Accept:
- - application/json
- Accept-Encoding:
- - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
- User-Agent:
- - Ruby
- Authorization:
- - Basic NWw3czVyTVl0T3doWUNZMDBTcnIzMTYzWkZmR2N5ZVQ6
- response:
- status:
- code: 200
- message: OK
- headers:
- Date:
- - Fri, 13 Sep 2019 20:12:34 GMT
- Content-Type:
- - application/json
- Content-Length:
- - '21'
- Connection:
- - keep-alive
- Vary:
- - Origin
- body:
- encoding: UTF-8
- string: |-
- {
- "success": true
- }
- http_version:
- recorded_at: Fri, 13 Sep 2019 20:12:34 GMT
-recorded_with: VCR 5.0.0
diff --git a/spec/vcr/User/_wait/registered_user_has_less_than_4_open_prs/disallows_the_user_to_enter_the_waiting_state.yml b/spec/vcr/User/_wait/registered_user_has_less_than_4_open_prs/disallows_the_user_to_enter_the_waiting_state.yml
deleted file mode 100644
index d3a5a7336..000000000
--- a/spec/vcr/User/_wait/registered_user_has_less_than_4_open_prs/disallows_the_user_to_enter_the_waiting_state.yml
+++ /dev/null
@@ -1,125 +0,0 @@
----
-http_interactions:
-- request:
- method: post
- uri: https://api.github.com/graphql
- body:
- encoding: UTF-8
- string: '{"query":"query($username:String!) {\n user(login: $username) {\n pullRequests(states:
- OPEN last: 100) {\n nodes {\n id\n title\n body\n url\n createdAt\n labels(first:
- 100) {\n edges {\n node {\n name\n }\n }\n }\n }\n }\n }\n}\n","variables":{"username":"mkcode"}}'
- headers:
- User-Agent:
- - Faraday v0.12.2
- Authorization:
- - bearer
- Content-Type:
- - application/json
- Accept-Encoding:
- - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
- Accept:
- - "*/*"
- response:
- status:
- code: 200
- message: OK
- headers:
- Date:
- - Fri, 13 Sep 2019 19:58:04 GMT
- Content-Type:
- - application/json; charset=utf-8
- Transfer-Encoding:
- - chunked
- Server:
- - GitHub.com
- Status:
- - 200 OK
- Cache-Control:
- - no-cache
- X-Oauth-Scopes:
- - user:email
- X-Accepted-Oauth-Scopes:
- - repo
- X-Github-Media-Type:
- - github.v4; format=json
- X-Ratelimit-Limit:
- - '5000'
- X-Ratelimit-Remaining:
- - '4967'
- X-Ratelimit-Reset:
- - '1568408095'
- Access-Control-Expose-Headers:
- - ETag, Link, Location, Retry-After, X-GitHub-OTP, X-RateLimit-Limit, X-RateLimit-Remaining,
- X-RateLimit-Reset, X-OAuth-Scopes, X-Accepted-OAuth-Scopes, X-Poll-Interval,
- X-GitHub-Media-Type
- Access-Control-Allow-Origin:
- - "*"
- Strict-Transport-Security:
- - max-age=31536000; includeSubdomains; preload
- X-Frame-Options:
- - deny
- X-Content-Type-Options:
- - nosniff
- X-Xss-Protection:
- - 1; mode=block
- Referrer-Policy:
- - origin-when-cross-origin, strict-origin-when-cross-origin
- Content-Security-Policy:
- - default-src 'none'
- Vary:
- - Accept-Encoding
- X-Github-Request-Id:
- - 3D87:6F27:19C0F0:2BA139:5D7BF4CC
- body:
- encoding: ASCII-8BIT
- string: '{"data":{"user":{"pullRequests":{"nodes":[{"id":"MDExOlB1bGxSZXF1ZXN0NTc5MDc4Mg==","title":"Upgraded
- to rails 3.2 stable","body":"Hi, I''m using this app as template for a new
- project. Wanted to get on rails 3.2 stable before I started. Here it is!\n\nCheers\n","url":"https://github.com/maccman/spine.rails3/pull/6","createdAt":"2013-05-17T23:05:41Z","labels":{"edges":[]}},{"id":"MDExOlB1bGxSZXF1ZXN0NDcxMDUxNzU=","title":"Delete
- repos cleanup","body":"@PeterDaveHello - Thanks for your contribution. I''m
- using this work as an opportunity to clean up how we are doing testing in
- this app. I see that you basically copied the format from the create_repos
- spec - which was a good move.\n\nAfter reworking this so I can understand
- what is happening in https://github.com/education/teachers_pet/commit/be8a8b1ddb3a8ef79a88f53f6bd05649417f0515,
- I notice that we are not stubbing any repo deletion requests - which then
- therefore would mean that these tests aren''t actually sending any API requests.\n\n@PeterDaveHello
- - these tests should be hitting a delete repo endpoint on the GitHub API,
- should they not? Can we rework them so that they do? These tests should fail
- in the case the we comment out the `teachers_pet(:delete_repos)`... block.\n\n/cc
- @johndbritton \n","url":"https://github.com/education/teachers_pet/pull/126","createdAt":"2015-10-08T02:24:19Z","labels":{"edges":[]}},{"id":"MDExOlB1bGxSZXF1ZXN0NDc0Nzk5ODQ=","title":"Results
- by cookie","body":"Hi @deski - Following up on our discussion in #78 \n\nThis
- PR adds info from the peek cookie as discussed. It does not save Peek results
- unless the peek cookie is enabled. Always sets the cookie if peek is enabled.\n\nIn
- the case Peek was not enabled for a request, and is toggled on, `Peek::Views`
- with a `data-defer-to` are hidden and a refresh message is displayed: \n\n![screen
- shot 2015-10-12 at 8 41 31 pm](https://cloud.githubusercontent.com/assets/283496/10442611/22bb6a2e-7122-11e5-8fb3-c3fb5ed333b7.png)\n","url":"https://github.com/peek/peek/pull/79","createdAt":"2015-10-13T00:46:43Z","labels":{"edges":[]}},{"id":"MDExOlB1bGxSZXF1ZXN0NTE0MTg4ODg=","title":"Update
- README.md","body":"Add maintenance note to readme\n","url":"https://github.com/vulume/Cordova-DBCamera/pull/1","createdAt":"2015-11-20T22:49:53Z","labels":{"edges":[]}},{"id":"MDExOlB1bGxSZXF1ZXN0NjkyNjE4Mjk=","title":"Add
- natural layer","body":"Adds the beginnings of a prose layer.\n\nReplaces #5403
- according to the discussion in #5996.\n","url":"https://github.com/syl20bnr/spacemacs/pull/6012","createdAt":"2016-05-08T06:24:38Z","labels":{"edges":[{"node":{"name":"New
- Layer"}}]}},{"id":"MDExOlB1bGxSZXF1ZXN0OTA4ODAzMzQ=","title":"Coercion type
- systems","body":"Introducing switchable type coercion systems for Hashie.
- Follows up on #239.\n\nAdds ''dry-types'' and ''activemodel'' alongside Hashie''s
- builtin coercion system. Basic usage is written up in the README.\n\nFor the
- most part, reading the source should be straight forward. The ''coercion''
- folder under ''extensions'' contains the implementation of the 3 coercion
- systems. The `Hashie::Extensions::Coercion` module was split into two files.
- The file itself contains the interface and common coercion methods, while
- the `Coercion::HashieTypes` class now contains the actual coercion implementation.\n\nThe
- only confusing part is the `CoercionSystemIncludeBuilder` defined under `Hashie::Extensions::Coercion`.
- The purpose of this class is to DRY up the included hooks for `Hashie::Extensions::Coercion`
- and `Hashie::Extensions::Dash::Coercion`. The common includes are defined
- once, and reused in the default `included` method and the `active_model` and
- `dry_types` methods on both the default and Dash coercion classes. The `active_model`
- and `dry_types` methods on `Hashie::Extensions::Coercion` and `Hashie::Extensions::Dash::Coercion`
- both return an anonymous module with an `included` method correctly defined,
- which then is immediately executed because it then included. \n\nExample:
- \n\n``` ruby\nmod = Hashie::Extensions::Coercion.dry_types\n# => \n\nmod.methods\n#=> [:included]\n\nclass MyHash < Hashie::Hash\n include
- mod\nend\n#=> Hashie::Extensions::Coercion::ClassMethods, Hashie::Extensions::Coercion::InstanceMethods,
- and Hashie::Extensions::Coercion::DryTypes are all mixed into MyHash\n```\n\nThis
- is 100% backwards compatible and all the tests pass. I did not add any additional
- tests - we should not need many as the new coercion systems are well tested
- in their own repos. We may want to add a few tests though.\n","url":"https://github.com/intridea/hashie/pull/379","createdAt":"2016-10-25T19:59:18Z","labels":{"edges":[{"node":{"name":"new
- feature"}}]}}]}}}}'
- http_version:
- recorded_at: Fri, 13 Sep 2019 19:58:04 GMT
-recorded_with: VCR 5.0.0
diff --git a/spec/vcr/User/_incomplete/hacktoberfest_has_not_yet_ended/disallows_the_user_to_enter_the_incompleted_state.yml b/spec/vcr/UsersController/_show/a_user_has_more_than_4_waiting_pull_requests/displays_a_complete_progress_bar.yml
similarity index 58%
rename from spec/vcr/User/_incomplete/hacktoberfest_has_not_yet_ended/disallows_the_user_to_enter_the_incompleted_state.yml
rename to spec/vcr/UsersController/_show/a_user_has_more_than_4_waiting_pull_requests/displays_a_complete_progress_bar.yml
index 8fd8e11b9..786e06edf 100644
--- a/spec/vcr/User/_incomplete/hacktoberfest_has_not_yet_ended/disallows_the_user_to_enter_the_incompleted_state.yml
+++ b/spec/vcr/UsersController/_show/a_user_has_more_than_4_waiting_pull_requests/displays_a_complete_progress_bar.yml
@@ -8,12 +8,12 @@ http_interactions:
string: '{"query":"query($nodeId:ID!){\n node(id:$nodeId) {\n ... on User
{\n pullRequests(states: [OPEN, MERGED, CLOSED] last: 100) {\n nodes
{\n id\n title\n body\n url\n createdAt\n repository{\n databaseId\n }\n labels(first:
- 100) {\n edges {\n node {\n name\n }\n }\n }\n }\n }\n }\n }\n}\n","variables":{"nodeId":"MDQ6VXNlcjYyOTYwMg=="}}'
+ 100) {\n edges {\n node {\n name\n }\n }\n }\n }\n }\n }\n }\n}\n","variables":{"nodeId":"MDQ6VXNlcjg1NjYyMw=="}}'
headers:
User-Agent:
- Faraday v0.15.4
Authorization:
- - bearer
+ - bearer
Content-Type:
- application/json
Accept-Encoding:
@@ -28,7 +28,7 @@ http_interactions:
Server:
- GitHub.com
Date:
- - Wed, 02 Oct 2019 03:01:09 GMT
+ - Fri, 07 Aug 2020 16:14:24 GMT
Content-Type:
- application/json; charset=utf-8
Transfer-Encoding:
@@ -38,7 +38,9 @@ http_interactions:
Cache-Control:
- no-cache
X-Oauth-Scopes:
- - ''
+ - admin:enterprise, admin:gpg_key, admin:org, admin:org_hook, admin:public_key,
+ admin:repo_hook, delete:packages, delete_repo, gist, notifications, read:packages,
+ repo, user, workflow, write:discussion, write:packages
X-Accepted-Oauth-Scopes:
- repo
X-Github-Media-Type:
@@ -46,13 +48,13 @@ http_interactions:
X-Ratelimit-Limit:
- '5000'
X-Ratelimit-Remaining:
- - '4678'
+ - '4995'
X-Ratelimit-Reset:
- - '1569988773'
+ - '1596818372'
Access-Control-Expose-Headers:
- ETag, Link, Location, Retry-After, X-GitHub-OTP, X-RateLimit-Limit, X-RateLimit-Remaining,
X-RateLimit-Reset, X-OAuth-Scopes, X-Accepted-OAuth-Scopes, X-Poll-Interval,
- X-GitHub-Media-Type
+ X-GitHub-Media-Type, Deprecation, Sunset
Access-Control-Allow-Origin:
- "*"
Strict-Transport-Security:
@@ -67,20 +69,13 @@ http_interactions:
- origin-when-cross-origin, strict-origin-when-cross-origin
Content-Security-Policy:
- default-src 'none'
+ Vary:
+ - Accept-Encoding, Accept, X-Requested-With
X-Github-Request-Id:
- - DE79:3B55:46DE1:79FB2:5D9412F4
+ - E425:1C7E:667685:10B008C:5F2D7DDF
body:
encoding: ASCII-8BIT
- string: '{"data":{"node":{"pullRequests":{"nodes":[{"id":"MDExOlB1bGxSZXF1ZXN0OTczNDMyNg==","title":"Allows
- floating point NoData/NULLVALUEs for floating point images.","body":"For floating
- point DEM inputs, I needed specify a floating point NoData value so that it
- would be included in the output. It was being truncated as an integer, when
- it should have parsed it as a float.\n","url":"https://github.com/mapserver/mapserver/pull/4805","createdAt":"2013-11-06T20:47:11Z","repository":{"databaseId":3921611},"labels":{"edges":[]}},{"id":"MDExOlB1bGxSZXF1ZXN0MTA2MjUzMTM=","title":"Removed
- padding that caused black borders for vimeo videos.","body":"When embedding
- vimeo media, the additional padding causes a black border to appear at the
- top/bottom of the video. Tested by using the iframe below in a video post.\n\n```\n\n```\n","url":"https://github.com/justintadlock/stargazer/pull/16","createdAt":"2013-12-08T08:19:51Z","repository":{"databaseId":14230306},"labels":{"edges":[]}}]}}}}'
+ string: '{"data":{"node":{"pullRequests":{"nodes":[]}}}}'
http_version:
- recorded_at: Wed, 02 Oct 2019 03:01:09 GMT
+ recorded_at: Fri, 07 Aug 2020 16:14:24 GMT
recorded_with: VCR 5.0.0
diff --git a/spec/vcr/User/_complete/the_user_has_been_waiting_for_7_days_but_has_less_than_4_eligible_prs/adds_the_correct_errors_to_user.yml b/spec/vcr/UsersController/_show/a_user_has_more_than_4_waiting_pull_requests/transitions_the_user_to_the_waiting_state.yml
similarity index 57%
rename from spec/vcr/User/_complete/the_user_has_been_waiting_for_7_days_but_has_less_than_4_eligible_prs/adds_the_correct_errors_to_user.yml
rename to spec/vcr/UsersController/_show/a_user_has_more_than_4_waiting_pull_requests/transitions_the_user_to_the_waiting_state.yml
index dd89d61e1..801b5632e 100644
--- a/spec/vcr/User/_complete/the_user_has_been_waiting_for_7_days_but_has_less_than_4_eligible_prs/adds_the_correct_errors_to_user.yml
+++ b/spec/vcr/UsersController/_show/a_user_has_more_than_4_waiting_pull_requests/transitions_the_user_to_the_waiting_state.yml
@@ -5,15 +5,15 @@ http_interactions:
uri: https://api.github.com/graphql
body:
encoding: UTF-8
- string: '{"query":"query($username:String!) {\n user(login: $username) {\n pullRequests(states:
- [OPEN, MERGED, CLOSED] last: 100) {\n nodes {\n id\n title\n body\n url\n createdAt\n repository{\n databaseId\n }\n labels(first:
- 100) {\n edges {\n node {\n name\n }\n }\n }\n }\n }\n }\n}\n","variables":{"username":"Testerson
- McTest"}}'
+ string: '{"query":"query($nodeId:ID!){\n node(id:$nodeId) {\n ... on User
+ {\n pullRequests(states: [OPEN, MERGED, CLOSED] last: 100) {\n nodes
+ {\n id\n title\n body\n url\n createdAt\n repository{\n databaseId\n }\n labels(first:
+ 100) {\n edges {\n node {\n name\n }\n }\n }\n }\n }\n }\n }\n}\n","variables":{"nodeId":"MDQ6VXNlcjgyNDI1"}}'
headers:
User-Agent:
- Faraday v0.15.4
Authorization:
- - bearer
+ - bearer
Content-Type:
- application/json
Accept-Encoding:
@@ -28,7 +28,7 @@ http_interactions:
Server:
- GitHub.com
Date:
- - Mon, 30 Sep 2019 19:36:50 GMT
+ - Fri, 07 Aug 2020 16:14:23 GMT
Content-Type:
- application/json; charset=utf-8
Transfer-Encoding:
@@ -38,7 +38,9 @@ http_interactions:
Cache-Control:
- no-cache
X-Oauth-Scopes:
- - admin:public_key
+ - admin:enterprise, admin:gpg_key, admin:org, admin:org_hook, admin:public_key,
+ admin:repo_hook, delete:packages, delete_repo, gist, notifications, read:packages,
+ repo, user, workflow, write:discussion, write:packages
X-Accepted-Oauth-Scopes:
- repo
X-Github-Media-Type:
@@ -48,11 +50,11 @@ http_interactions:
X-Ratelimit-Remaining:
- '4996'
X-Ratelimit-Reset:
- - '1569875809'
+ - '1596818372'
Access-Control-Expose-Headers:
- ETag, Link, Location, Retry-After, X-GitHub-OTP, X-RateLimit-Limit, X-RateLimit-Remaining,
X-RateLimit-Reset, X-OAuth-Scopes, X-Accepted-OAuth-Scopes, X-Poll-Interval,
- X-GitHub-Media-Type
+ X-GitHub-Media-Type, Deprecation, Sunset
Access-Control-Allow-Origin:
- "*"
Strict-Transport-Security:
@@ -67,12 +69,13 @@ http_interactions:
- origin-when-cross-origin, strict-origin-when-cross-origin
Content-Security-Policy:
- default-src 'none'
+ Vary:
+ - Accept-Encoding, Accept, X-Requested-With
X-Github-Request-Id:
- - E30B:5A55:1597EE9:2B189D4:5D925952
+ - E424:1C80:1855DA2:2A412EA:5F2D7DDF
body:
encoding: ASCII-8BIT
- string: '{"data":{"user":null},"errors":[{"type":"NOT_FOUND","path":["user"],"locations":[{"line":2,"column":3}],"message":"Could
- not resolve to a User with the login of ''Testerson McTest''."}]}'
+ string: '{"data":{"node":{"pullRequests":{"nodes":[]}}}}'
http_version:
- recorded_at: Mon, 30 Sep 2019 19:36:50 GMT
+ recorded_at: Fri, 07 Aug 2020 16:14:23 GMT
recorded_with: VCR 5.0.0
diff --git a/spec/vcr/User/_complete/the_user_neither_4_eligible_PRs_nor_has_been_waiting_for_7_days/adds_the_correct_errors_to_user.yml b/spec/vcr/UsersController/_show/a_user_has_more_than_4_waiting_pull_requests/tries_to_transition_the_user.yml
similarity index 57%
rename from spec/vcr/User/_complete/the_user_neither_4_eligible_PRs_nor_has_been_waiting_for_7_days/adds_the_correct_errors_to_user.yml
rename to spec/vcr/UsersController/_show/a_user_has_more_than_4_waiting_pull_requests/tries_to_transition_the_user.yml
index 08bdd97b4..28c5c1c84 100644
--- a/spec/vcr/User/_complete/the_user_neither_4_eligible_PRs_nor_has_been_waiting_for_7_days/adds_the_correct_errors_to_user.yml
+++ b/spec/vcr/UsersController/_show/a_user_has_more_than_4_waiting_pull_requests/tries_to_transition_the_user.yml
@@ -5,15 +5,15 @@ http_interactions:
uri: https://api.github.com/graphql
body:
encoding: UTF-8
- string: '{"query":"query($username:String!) {\n user(login: $username) {\n pullRequests(states:
- [OPEN, MERGED, CLOSED] last: 100) {\n nodes {\n id\n title\n body\n url\n createdAt\n repository{\n databaseId\n }\n labels(first:
- 100) {\n edges {\n node {\n name\n }\n }\n }\n }\n }\n }\n}\n","variables":{"username":"Testerson
- McTest"}}'
+ string: '{"query":"query($nodeId:ID!){\n node(id:$nodeId) {\n ... on User
+ {\n pullRequests(states: [OPEN, MERGED, CLOSED] last: 100) {\n nodes
+ {\n id\n title\n body\n url\n createdAt\n repository{\n databaseId\n }\n labels(first:
+ 100) {\n edges {\n node {\n name\n }\n }\n }\n }\n }\n }\n }\n}\n","variables":{"nodeId":"MDQ6VXNlcjI2MzQ4OQ=="}}'
headers:
User-Agent:
- Faraday v0.15.4
Authorization:
- - bearer
+ - bearer
Content-Type:
- application/json
Accept-Encoding:
@@ -28,7 +28,7 @@ http_interactions:
Server:
- GitHub.com
Date:
- - Mon, 30 Sep 2019 19:36:50 GMT
+ - Fri, 07 Aug 2020 16:14:24 GMT
Content-Type:
- application/json; charset=utf-8
Transfer-Encoding:
@@ -38,7 +38,9 @@ http_interactions:
Cache-Control:
- no-cache
X-Oauth-Scopes:
- - admin:public_key
+ - admin:enterprise, admin:gpg_key, admin:org, admin:org_hook, admin:public_key,
+ admin:repo_hook, delete:packages, delete_repo, gist, notifications, read:packages,
+ repo, user, workflow, write:discussion, write:packages
X-Accepted-Oauth-Scopes:
- repo
X-Github-Media-Type:
@@ -48,11 +50,11 @@ http_interactions:
X-Ratelimit-Remaining:
- '4994'
X-Ratelimit-Reset:
- - '1569875809'
+ - '1596818373'
Access-Control-Expose-Headers:
- ETag, Link, Location, Retry-After, X-GitHub-OTP, X-RateLimit-Limit, X-RateLimit-Remaining,
X-RateLimit-Reset, X-OAuth-Scopes, X-Accepted-OAuth-Scopes, X-Poll-Interval,
- X-GitHub-Media-Type
+ X-GitHub-Media-Type, Deprecation, Sunset
Access-Control-Allow-Origin:
- "*"
Strict-Transport-Security:
@@ -67,12 +69,13 @@ http_interactions:
- origin-when-cross-origin, strict-origin-when-cross-origin
Content-Security-Policy:
- default-src 'none'
+ Vary:
+ - Accept-Encoding, Accept, X-Requested-With
X-Github-Request-Id:
- - E311:6783:1317EC1:2717B49:5D925952
+ - E426:653E:DC4F37:1F11B18:5F2D7DE0
body:
encoding: ASCII-8BIT
- string: '{"data":{"user":null},"errors":[{"type":"NOT_FOUND","path":["user"],"locations":[{"line":2,"column":3}],"message":"Could
- not resolve to a User with the login of ''Testerson McTest''."}]}'
+ string: '{"data":{"node":{"pullRequests":{"nodes":[]}}}}'
http_version:
- recorded_at: Mon, 30 Sep 2019 19:36:50 GMT
+ recorded_at: Fri, 07 Aug 2020 16:14:24 GMT
recorded_with: VCR 5.0.0
diff --git a/spec/vcr/User/_complete/the_user_has_been_waiting_for_7_days_but_has_less_than_4_eligible_prs/disallows_the_user_to_enter_the_completed_state.yml b/spec/vcr/UsersController/_show/waiting_user_has_4_eligible_PRs_has_been_waiting_for_7_days/transitions_the_user_to_the_completed_state.yml
similarity index 57%
rename from spec/vcr/User/_complete/the_user_has_been_waiting_for_7_days_but_has_less_than_4_eligible_prs/disallows_the_user_to_enter_the_completed_state.yml
rename to spec/vcr/UsersController/_show/waiting_user_has_4_eligible_PRs_has_been_waiting_for_7_days/transitions_the_user_to_the_completed_state.yml
index 779ff4297..753404ae3 100644
--- a/spec/vcr/User/_complete/the_user_has_been_waiting_for_7_days_but_has_less_than_4_eligible_prs/disallows_the_user_to_enter_the_completed_state.yml
+++ b/spec/vcr/UsersController/_show/waiting_user_has_4_eligible_PRs_has_been_waiting_for_7_days/transitions_the_user_to_the_completed_state.yml
@@ -5,15 +5,15 @@ http_interactions:
uri: https://api.github.com/graphql
body:
encoding: UTF-8
- string: '{"query":"query($username:String!) {\n user(login: $username) {\n pullRequests(states:
- [OPEN, MERGED, CLOSED] last: 100) {\n nodes {\n id\n title\n body\n url\n createdAt\n repository{\n databaseId\n }\n labels(first:
- 100) {\n edges {\n node {\n name\n }\n }\n }\n }\n }\n }\n}\n","variables":{"username":"Testerson
- McTest"}}'
+ string: '{"query":"query($nodeId:ID!){\n node(id:$nodeId) {\n ... on User
+ {\n pullRequests(states: [OPEN, MERGED, CLOSED] last: 100) {\n nodes
+ {\n id\n title\n body\n url\n createdAt\n repository{\n databaseId\n }\n labels(first:
+ 100) {\n edges {\n node {\n name\n }\n }\n }\n }\n }\n }\n }\n}\n","variables":{"nodeId":"MDQ6VXNlcjc5NTI4Mw=="}}'
headers:
User-Agent:
- Faraday v0.15.4
Authorization:
- - bearer
+ - bearer
Content-Type:
- application/json
Accept-Encoding:
@@ -28,7 +28,7 @@ http_interactions:
Server:
- GitHub.com
Date:
- - Mon, 30 Sep 2019 19:36:50 GMT
+ - Fri, 07 Aug 2020 16:14:23 GMT
Content-Type:
- application/json; charset=utf-8
Transfer-Encoding:
@@ -38,7 +38,9 @@ http_interactions:
Cache-Control:
- no-cache
X-Oauth-Scopes:
- - admin:public_key
+ - admin:enterprise, admin:gpg_key, admin:org, admin:org_hook, admin:public_key,
+ admin:repo_hook, delete:packages, delete_repo, gist, notifications, read:packages,
+ repo, user, workflow, write:discussion, write:packages
X-Accepted-Oauth-Scopes:
- repo
X-Github-Media-Type:
@@ -48,11 +50,11 @@ http_interactions:
X-Ratelimit-Remaining:
- '4997'
X-Ratelimit-Reset:
- - '1569875809'
+ - '1596818373'
Access-Control-Expose-Headers:
- ETag, Link, Location, Retry-After, X-GitHub-OTP, X-RateLimit-Limit, X-RateLimit-Remaining,
X-RateLimit-Reset, X-OAuth-Scopes, X-Accepted-OAuth-Scopes, X-Poll-Interval,
- X-GitHub-Media-Type
+ X-GitHub-Media-Type, Deprecation, Sunset
Access-Control-Allow-Origin:
- "*"
Strict-Transport-Security:
@@ -67,12 +69,13 @@ http_interactions:
- origin-when-cross-origin, strict-origin-when-cross-origin
Content-Security-Policy:
- default-src 'none'
+ Vary:
+ - Accept-Encoding, Accept, X-Requested-With
X-Github-Request-Id:
- - E30A:2D4E:19CAC64:3181690:5D925951
+ - E423:3F2F:1677066:2729CA1:5F2D7DDE
body:
encoding: ASCII-8BIT
- string: '{"data":{"user":null},"errors":[{"type":"NOT_FOUND","path":["user"],"locations":[{"line":2,"column":3}],"message":"Could
- not resolve to a User with the login of ''Testerson McTest''."}]}'
+ string: '{"data":{"node":{"pullRequests":{"nodes":[]}}}}'
http_version:
- recorded_at: Mon, 30 Sep 2019 19:36:50 GMT
+ recorded_at: Fri, 07 Aug 2020 16:14:23 GMT
recorded_with: VCR 5.0.0