souls 0.17.4 → 0.17.5

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 3d75356f72b972890fc8381fc9b0bafeb5785fb8d6dcc7a6d7e20b4c2e6bba27
4
- data.tar.gz: 2f91cc0387b40bb24f2cbc4ce95d9c8c60c51f32683472957b56d69ee942b111
3
+ metadata.gz: 48f5dacba8fb3bd0da68f45b83208de7007abb6392b7d0c8eb9176755b97c185
4
+ data.tar.gz: 64283afa2ca8decda20078855d116d8c9dd7e3979dd8ce50560e9591dfcc5135
5
5
  SHA512:
6
- metadata.gz: f77af6d106b7d7fe8ea44d79902712e8f4121b98f3a15dff038fda23d54f518866485be26d8ff3455786386bd7cab4c47b0ffcf5825764656b660dc754f9f79d
7
- data.tar.gz: dfc7a4779c8fc36341a56dc52facc8ad3c5274575aa176270d32d76d78e598552178ce4c5c17e90bd2f69b08860468f33639c07f4de0140ea5545b71b556e950
6
+ metadata.gz: 507ef37fd28f186e6f7a4cc6c5e8528a5b48443afb989f247e60dab26fe4a1005733283caedb1391cc1bc0f3288ba099774ff25c3d573c2a5530ea331bfadb76
7
+ data.tar.gz: 8ae0b00d12c3acab94babcf5cb6cf19fa4a8923b26c82c5b1790de317d16fd421bf4f97e572615561d1ac7f90c6a918122625cf1420d371ef980d76870015651
data/exe/souls CHANGED
@@ -69,6 +69,8 @@ begin
69
69
  Souls::Init.test_dir
70
70
  when "policy"
71
71
  Souls::Init.policy class_name: ARGV[2]
72
+ when "rspec_policy"
73
+ Souls::Init.rspec_policy class_name: ARGV[2]
72
74
  when "node_type"
73
75
  Souls::Init.node_type class_name: ARGV[2]
74
76
  when "resolver"
@@ -59,6 +59,50 @@ module Souls
59
59
  [file_path]
60
60
  end
61
61
 
62
+ def rspec_policy class_name: "souls"
63
+ dir_name = "./spec/policies"
64
+ FileUtils.mkdir_p dir_name unless Dir.exist? dir_name
65
+ file_path = "./spec/policies/#{class_name}_policy_spec.rb"
66
+ File.open(file_path, "w") do |new_line|
67
+ new_line.write <<~EOS
68
+ describe #{class_name.camelize}Policy do
69
+ subject { described_class.new(user, #{class_name.underscore}) }
70
+
71
+ let(:#{class_name.underscore}) { FactoryBot.create(:#{class_name.underscore}) }
72
+
73
+ context "being a visitor" do
74
+ let(:user) { FactoryBot.create(:user) }
75
+
76
+ it { is_expected.to permit_action(:index) }
77
+ it { is_expected.to permit_action(:show) }
78
+ it { is_expected.to forbid_actions([:create, :update, :delete]) }
79
+ end
80
+
81
+ context "being a retailer" do
82
+ let(:user) { FactoryBot.create(:user, user_role: 1) }
83
+
84
+ it { is_expected.to permit_action(:index) }
85
+ it { is_expected.to permit_action(:show) }
86
+ it { is_expected.to forbid_actions([:create, :update, :delete]) }
87
+ end
88
+
89
+ context "being a staff" do
90
+ let(:user) { FactoryBot.create(:user, user_role: 3) }
91
+
92
+ it { is_expected.to permit_actions([:create, :update, :delete]) }
93
+ end
94
+
95
+ context "being an administrator" do
96
+ let(:user) { FactoryBot.create(:user, user_role: 4) }
97
+
98
+ it { is_expected.to permit_actions([:create, :update, :delete]) }
99
+ end
100
+ end
101
+ EOS
102
+ end
103
+ [file_path]
104
+ end
105
+
62
106
  def resolver_head class_name: "souls"
63
107
  FileUtils.mkdir_p "./app/graphql/resolvers" unless Dir.exist? "./app/graphql/resolvers"
64
108
  file_path = "./app/graphql/resolvers/#{class_name.singularize}_search.rb"
data/lib/souls/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module Souls
2
- VERSION = "0.17.4"
2
+ VERSION = "0.17.5"
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: souls
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.17.4
4
+ version: 0.17.5
5
5
  platform: ruby
6
6
  authors:
7
7
  - POPPIN-FUMI