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| %> - - - - + <%= render partial: 'users/show/pr/pr', locals: { pr: pr } %> <% end %> + <% if show_timer %> <% end %> + <% if show_congratulations %> <% end %> + <% if non_scoring_pull_requests.any? %> <% non_scoring_pull_requests.map do |pr| %> - - - - + <%= render partial: 'users/show/pr/pr', locals: { pr: pr } %> <% end %> <% 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 %> -
-
-
- <% 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 %>
-

-
-
-

<%= 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 @@
-

You did it! 🎉

+

You did it! 🎉

You've made four eligible PRs for Hacktoberfest — which means you officially completed this year’s challenge!
- <% 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 %>
-

-
-
+

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