souls 0.17.4 → 0.17.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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