|
9 | 9 | let(:backend_config) { base_backend_config }
|
10 | 10 | let(:base_backend_config) do
|
11 | 11 | {
|
12 |
| - "org" => "kittensinc", |
13 |
| - "token" => "CuteAndCuddlyKittens", |
14 |
| - "type" => "github_org", |
15 |
| - "base" => "ou=kittensinc,ou=GitHub,dc=github,dc=com" |
| 12 | + "org" => "kittensinc", |
| 13 | + "token" => "CuteAndCuddlyKittens", |
| 14 | + "type" => "github_org", |
| 15 | + "base" => "ou=kittensinc,ou=GitHub,dc=github,dc=com", |
| 16 | + "ignore_not_found" => false |
16 | 17 | }
|
17 | 18 | end
|
18 | 19 | let(:group_name) { "foo-githuborg" }
|
|
98 | 99 | it "logs expected output and returns expected actions" do
|
99 | 100 | allow(Entitlements::Data::Groups::Calculated).to receive(:read_all)
|
100 | 101 | .with("foo-githuborg", {
|
101 |
| - "base" => "ou=kittensinc,ou=GitHub,dc=github,dc=com", |
102 |
| - "org" => "kittensinc", |
103 |
| - "token" => "CuteAndCuddlyKittens" |
| 102 | + "base" => "ou=kittensinc,ou=GitHub,dc=github,dc=com", |
| 103 | + "org" => "kittensinc", |
| 104 | + "token" => "CuteAndCuddlyKittens", |
| 105 | + "ignore_not_found" => false |
104 | 106 | }).and_return(Set.new(%w[admin member].map { |cn| "cn=#{cn},ou=kittensinc,ou=GitHub,dc=github,dc=com" }))
|
105 | 107 | allow(Entitlements::Data::Groups::Calculated).to receive(:read).with(org1_admin_dn).and_return(org1_admin_group)
|
106 | 108 | allow(Entitlements::Data::Groups::Calculated).to receive(:read).with(org1_member_dn).and_return(org1_member_group)
|
|
179 | 181 | end
|
180 | 182 |
|
181 | 183 | it "logs expected output and returns expected actions" do
|
182 |
| - allow(Entitlements::Data::Groups::Calculated).to receive(:read_all).with("foo-githuborg", {"base"=>"ou=kittensinc,ou=GitHub,dc=github,dc=com", "org"=>"kittensinc", "token"=>"CuteAndCuddlyKittens"}) |
| 184 | + allow(Entitlements::Data::Groups::Calculated).to receive(:read_all) |
| 185 | + .with("foo-githuborg", {"base"=>"ou=kittensinc,ou=GitHub,dc=github,dc=com", "org"=>"kittensinc", "token"=>"CuteAndCuddlyKittens", "ignore_not_found"=>false}) |
183 | 186 | .and_return(Set.new(%w[admin member].map { |cn| "cn=#{cn},ou=kittensinc,ou=GitHub,dc=github,dc=com" }))
|
184 | 187 | allow(Entitlements::Data::Groups::Calculated).to receive(:read).with(org1_admin_dn).and_return(org1_admin_group)
|
185 | 188 | allow(Entitlements::Data::Groups::Calculated).to receive(:read).with(org1_member_dn).and_return(org1_member_group)
|
|
263 | 266 | end
|
264 | 267 |
|
265 | 268 | it "logs expected output and returns expected actions" do
|
266 |
| - allow(Entitlements::Data::Groups::Calculated).to receive(:read_all).with("foo-githuborg", {"base"=>"ou=kittensinc,ou=GitHub,dc=github,dc=com", "org"=>"kittensinc", "token"=>"CuteAndCuddlyKittens"}) |
| 269 | + allow(Entitlements::Data::Groups::Calculated).to receive(:read_all) |
| 270 | + .with("foo-githuborg", {"base"=>"ou=kittensinc,ou=GitHub,dc=github,dc=com", "org"=>"kittensinc", "token"=>"CuteAndCuddlyKittens", "ignore_not_found"=>false}) |
267 | 271 | .and_return(Set.new(%w[admin member].map { |cn| "cn=#{cn},ou=kittensinc,ou=GitHub,dc=github,dc=com" }))
|
268 | 272 | allow(Entitlements::Data::Groups::Calculated).to receive(:read).with(org1_admin_dn).and_return(org1_admin_group)
|
269 | 273 | allow(Entitlements::Data::Groups::Calculated).to receive(:read).with(org1_member_dn).and_return(org1_member_group)
|
|
328 | 332 |
|
329 | 333 | it "does not run actions" do
|
330 | 334 | allow(Entitlements::Data::Groups::Calculated).to receive(:read_all)
|
331 |
| - .with("foo-githuborg", {"base"=>"ou=kittensinc,ou=GitHub,dc=github,dc=com", "org"=>"kittensinc", "token"=>"CuteAndCuddlyKittens"}) |
| 335 | + .with("foo-githuborg", {"base"=>"ou=kittensinc,ou=GitHub,dc=github,dc=com", "org"=>"kittensinc", "token"=>"CuteAndCuddlyKittens", "ignore_not_found"=>false}) |
332 | 336 | .and_return(Set.new(%w[admin member].map { |cn| "cn=#{cn},ou=kittensinc,ou=GitHub,dc=github,dc=com" }))
|
333 | 337 | allow(Entitlements::Data::Groups::Calculated).to receive(:read).with(org1_admin_dn).and_return(org1_admin_group)
|
334 | 338 | allow(Entitlements::Data::Groups::Calculated).to receive(:read).with(org1_member_dn).and_return(org1_member_group)
|
|
374 | 378 |
|
375 | 379 | it "handles removals and role changes but does not invite" do
|
376 | 380 | allow(Entitlements::Data::Groups::Calculated).to receive(:read_all)
|
377 |
| - .with("foo-githuborg", {"base"=>"ou=kittensinc,ou=GitHub,dc=github,dc=com", "features"=>%w[remove], "org"=>"kittensinc", "token"=>"CuteAndCuddlyKittens"}) |
| 381 | + .with("foo-githuborg", {"base"=>"ou=kittensinc,ou=GitHub,dc=github,dc=com", "features"=>%w[remove], "org"=>"kittensinc", "token"=>"CuteAndCuddlyKittens", "ignore_not_found"=>false}) |
378 | 382 | .and_return(Set.new(%w[admin member].map { |cn| "cn=#{cn},ou=kittensinc,ou=GitHub,dc=github,dc=com" }))
|
379 | 383 | allow(Entitlements::Data::Groups::Calculated).to receive(:read).with(org1_admin_dn).and_return(org1_admin_group)
|
380 | 384 | allow(Entitlements::Data::Groups::Calculated).to receive(:read).with(org1_member_dn).and_return(org1_member_group)
|
|
437 | 441 |
|
438 | 442 | it "reports as a no-op" do
|
439 | 443 | allow(Entitlements::Data::Groups::Calculated).to receive(:read_all)
|
440 |
| - .with("foo-githuborg", {"base"=>"ou=kittensinc,ou=GitHub,dc=github,dc=com", "features"=>%w[remove], "org"=>"kittensinc", "token"=>"CuteAndCuddlyKittens"}) |
| 444 | + .with("foo-githuborg", {"base"=>"ou=kittensinc,ou=GitHub,dc=github,dc=com", "features"=>%w[remove], "org"=>"kittensinc", "token"=>"CuteAndCuddlyKittens", "ignore_not_found"=>false}) |
441 | 445 | .and_return(Set.new(%w[admin member].map { |cn| "cn=#{cn},ou=kittensinc,ou=GitHub,dc=github,dc=com" }))
|
442 | 446 | allow(Entitlements::Data::Groups::Calculated).to receive(:read).with(org1_admin_dn).and_return(org1_admin_group)
|
443 | 447 | allow(Entitlements::Data::Groups::Calculated).to receive(:read).with(org1_member_dn).and_return(org1_member_group)
|
|
486 | 490 |
|
487 | 491 | it "handles removals and role changes but does not invite" do
|
488 | 492 | allow(Entitlements::Data::Groups::Calculated).to receive(:read_all)
|
489 |
| - .with("foo-githuborg", {"base"=>"ou=kittensinc,ou=GitHub,dc=github,dc=com", "features"=>%w[invite], "org"=>"kittensinc", "token"=>"CuteAndCuddlyKittens"}) |
| 493 | + .with("foo-githuborg", {"base"=>"ou=kittensinc,ou=GitHub,dc=github,dc=com", "features"=>%w[invite], "org"=>"kittensinc", "token"=>"CuteAndCuddlyKittens", "ignore_not_found"=>false}) |
490 | 494 | .and_return(Set.new(%w[admin member].map { |cn| "cn=#{cn},ou=kittensinc,ou=GitHub,dc=github,dc=com" }))
|
491 | 495 | allow(Entitlements::Data::Groups::Calculated).to receive(:read).with(org1_admin_dn).and_return(org1_admin_group)
|
492 | 496 | allow(Entitlements::Data::Groups::Calculated).to receive(:read).with(org1_member_dn).and_return(org1_member_group)
|
|
555 | 559 |
|
556 | 560 | it "reports as a no-op" do
|
557 | 561 | allow(Entitlements::Data::Groups::Calculated).to receive(:read_all)
|
558 |
| - .with("foo-githuborg", {"base"=>"ou=kittensinc,ou=GitHub,dc=github,dc=com", "features"=>%w[invite], "org"=>"kittensinc", "token"=>"CuteAndCuddlyKittens"}) |
| 562 | + .with("foo-githuborg", {"base"=>"ou=kittensinc,ou=GitHub,dc=github,dc=com", "features"=>%w[invite], "org"=>"kittensinc", "token"=>"CuteAndCuddlyKittens", "ignore_not_found"=>false}) |
559 | 563 | .and_return(Set.new(%w[admin member].map { |cn| "cn=#{cn},ou=kittensinc,ou=GitHub,dc=github,dc=com" }))
|
560 | 564 | allow(Entitlements::Data::Groups::Calculated).to receive(:read).with(org1_admin_dn).and_return(org1_admin_group)
|
561 | 565 | allow(Entitlements::Data::Groups::Calculated).to receive(:read).with(org1_member_dn).and_return(org1_member_group)
|
|
591 | 595 | cache[:predictive_state] = { by_dn: { org1_admin_dn => { members: admins, metadata: nil }, org1_member_dn => { members:, metadata: nil } }, invalid: Set.new }
|
592 | 596 |
|
593 | 597 | allow(Entitlements::Data::Groups::Calculated).to receive(:read_all)
|
594 |
| - .with("foo-githuborg", { |
595 |
| - "base"=>"ou=kittensinc,ou=GitHub,dc=github,dc=com", "org"=>"kittensinc", "token"=>"CuteAndCuddlyKittens" |
596 |
| - }).and_return(Set.new(%w[admin member].map { |cn| "cn=#{cn},ou=kittensinc,ou=GitHub,dc=github,dc=com" })) |
| 598 | + .with("foo-githuborg", { "base"=>"ou=kittensinc,ou=GitHub,dc=github,dc=com", "org"=>"kittensinc", "token"=>"CuteAndCuddlyKittens", "ignore_not_found"=>false}) |
| 599 | + .and_return(Set.new(%w[admin member].map { |cn| "cn=#{cn},ou=kittensinc,ou=GitHub,dc=github,dc=com" })) |
597 | 600 |
|
598 | 601 | allow(Entitlements::Data::Groups::Calculated).to receive(:read).with(org1_admin_dn).and_return(org1_admin_group)
|
599 | 602 | allow(Entitlements::Data::Groups::Calculated).to receive(:read).with(org1_member_dn).and_return(org1_member_group)
|
|
663 | 666 |
|
664 | 667 | it "handles removals and role changes but does not invite" do
|
665 | 668 | allow(Entitlements::Data::Groups::Calculated).to receive(:read_all)
|
666 |
| - .with("foo-githuborg", {"base"=>"ou=kittensinc,ou=GitHub,dc=github,dc=com", "features"=>[], "org"=>"kittensinc", "token"=>"CuteAndCuddlyKittens"}) |
| 669 | + .with("foo-githuborg", {"base"=>"ou=kittensinc,ou=GitHub,dc=github,dc=com", "features"=>[], "org"=>"kittensinc", "token"=>"CuteAndCuddlyKittens", "ignore_not_found"=>false}) |
667 | 670 | .and_return(Set.new(%w[admin member].map { |cn| "cn=#{cn},ou=kittensinc,ou=GitHub,dc=github,dc=com" }))
|
668 | 671 | allow(Entitlements::Data::Groups::Calculated).to receive(:read).with(org1_admin_dn).and_return(org1_admin_group)
|
669 | 672 | allow(Entitlements::Data::Groups::Calculated).to receive(:read).with(org1_member_dn).and_return(org1_member_group)
|
|
726 | 729 |
|
727 | 730 | it "reports as a no-op" do
|
728 | 731 | allow(Entitlements::Data::Groups::Calculated).to receive(:read_all)
|
729 |
| - .with("foo-githuborg", {"base"=>"ou=kittensinc,ou=GitHub,dc=github,dc=com", "features"=>[], "org"=>"kittensinc", "token"=>"CuteAndCuddlyKittens"}) |
| 732 | + .with("foo-githuborg", {"base"=>"ou=kittensinc,ou=GitHub,dc=github,dc=com", "features"=>[], "org"=>"kittensinc", "token"=>"CuteAndCuddlyKittens", "ignore_not_found"=>false}) |
730 | 733 | .and_return(Set.new(%w[admin member].map { |cn| "cn=#{cn},ou=kittensinc,ou=GitHub,dc=github,dc=com" }))
|
731 | 734 | allow(Entitlements::Data::Groups::Calculated).to receive(:read).with(org1_admin_dn).and_return(org1_admin_group)
|
732 | 735 | allow(Entitlements::Data::Groups::Calculated).to receive(:read).with(org1_member_dn).and_return(org1_member_group)
|
|
837 | 840 | describe "#validate_github_org_ous!" do
|
838 | 841 | it "raises if an admin or member group is missing" do
|
839 | 842 | allow(Entitlements::Data::Groups::Calculated).to receive(:read_all)
|
840 |
| - .with("foo-githuborg", {"base"=>"ou=kittensinc,ou=GitHub,dc=github,dc=com", "org"=>"kittensinc", "token"=>"CuteAndCuddlyKittens"}) |
| 843 | + .with("foo-githuborg", {"base"=>"ou=kittensinc,ou=GitHub,dc=github,dc=com", "org"=>"kittensinc", "token"=>"CuteAndCuddlyKittens", "ignore_not_found"=>false}) |
841 | 844 | .and_return(Set.new(%w[member].map { |cn| "cn=#{cn},ou=kittensinc,ou=GitHub,dc=github,dc=com" }))
|
842 | 845 |
|
843 | 846 | github_double = instance_double(Entitlements::Backend::GitHubOrg::Provider)
|
|
857 | 860 | dns = %w[admin member kittens cats].map { |cn| "cn=#{cn},ou=kittensinc,ou=GitHub,dc=github,dc=com" }
|
858 | 861 |
|
859 | 862 | allow(Entitlements::Data::Groups::Calculated).to receive(:read_all)
|
860 |
| - .with("foo-githuborg", {"base"=>"ou=kittensinc,ou=GitHub,dc=github,dc=com", "org"=>"kittensinc", "token"=>"CuteAndCuddlyKittens"}) |
| 863 | + .with("foo-githuborg", {"base"=>"ou=kittensinc,ou=GitHub,dc=github,dc=com", "org"=>"kittensinc", "token"=>"CuteAndCuddlyKittens", "ignore_not_found"=>false}) |
861 | 864 | .and_return(Set.new(dns))
|
862 | 865 |
|
863 | 866 | allow(Entitlements::Backend::GitHubOrg::Service).to receive(:new).and_return(service)
|
|
897 | 900 |
|
898 | 901 | it "raises due to duplicate users" do
|
899 | 902 | allow(Entitlements::Data::Groups::Calculated).to receive(:read_all)
|
900 |
| - .with("foo-githuborg", { |
901 |
| - "base" => "ou=kittensinc,ou=GitHub,dc=github,dc=com", |
902 |
| - "org" => "kittensinc", |
903 |
| - "token" => "CuteAndCuddlyKittens" |
904 |
| - }).and_return(Set.new(%w[admin member].map { |cn| "cn=#{cn},ou=kittensinc,ou=GitHub,dc=github,dc=com" })) |
| 903 | + .with("foo-githuborg", {"base"=>"ou=kittensinc,ou=GitHub,dc=github,dc=com", "org"=>"kittensinc", "token"=>"CuteAndCuddlyKittens", "ignore_not_found"=>false}) |
| 904 | + .and_return(Set.new(%w[admin member].map { |cn| "cn=#{cn},ou=kittensinc,ou=GitHub,dc=github,dc=com" })) |
905 | 905 | allow(Entitlements::Data::Groups::Calculated).to receive(:read).with(admin_dn).and_return(admin_group)
|
906 | 906 | allow(Entitlements::Data::Groups::Calculated).to receive(:read).with(member_dn).and_return(member_group)
|
907 | 907 | allow(Entitlements::Data::Groups::Calculated).to receive(:read).with(member_dn).and_return(member_group)
|
|
0 commit comments