lib/souls/generate/rspec_resolver.rb in souls-0.23.5 vs lib/souls/generate/rspec_resolver.rb in souls-0.23.6
- old
+ new
@@ -1,193 +1,186 @@
module Souls
module Generate
- class << self
- ## Generate Rspec Resolver
- def rspec_resolver_head class_name: "souls"
- file_path = "./spec/resolvers/#{class_name.singularize}_search_spec.rb"
- File.open(file_path, "w") do |f|
- f.write <<~EOS
- RSpec.describe \"#{class_name.camelize}Search Resolver テスト\" do
- describe "削除フラグ false の #{class_name.camelize} を返却する" do
- EOS
- end
+ ## Generate Rspec Resolver
+ def self.rspec_resolver_head(class_name: "souls")
+ file_path = "./spec/resolvers/#{class_name.singularize}_search_spec.rb"
+ File.open(file_path, "w") do |f|
+ f.write(<<~TEXT)
+ RSpec.describe \"#{class_name.camelize}Search Resolver テスト\" do
+ describe "削除フラグ false の #{class_name.camelize} を返却する" do
+ TEXT
end
+ end
- def rspec_resolver_after_head class_name: "souls"
- file_path = "./spec/resolvers/#{class_name.singularize}_search_spec.rb"
- path = "./db/schema.rb"
- @on = false
- @user_exist = false
- @relation_params = []
- File.open(file_path, "a") do |new_line|
- File.open(path, "r") do |f|
- f.each_line.with_index do |line, i|
- if @on
- if line.include?("end") || line.include?("t.index")
- if @relation_params.empty?
- new_line.write <<-EOS
- let!(:#{class_name}) { FactoryBot.create(:#{class_name}) }
+ def self.rspec_resolver_after_head(class_name: "souls")
+ file_path = "./spec/resolvers/#{class_name.singularize}_search_spec.rb"
+ path = "./db/schema.rb"
+ @on = false
+ @user_exist = false
+ @relation_params = []
+ File.open(file_path, "a") do |new_line|
+ File.open(path, "r") do |f|
+ f.each_line.with_index do |line, _i|
+ if @on
+ if line.include?("end") || line.include?("t.index")
+ if @relation_params.empty?
+ new_line.write(<<-TEXT)
+ let!(:#{class_name}) { FactoryBot.create(:#{class_name}) }
- let(:query) do
- %(query {
- #{class_name.singularize.camelize(:lower)}Search(filter: {
- isDeleted: false
- }) {
- edges {
- cursor
- node {
- id
- EOS
- else
- new_line.write <<-EOS
- let!(:#{class_name}) { FactoryBot.create(:#{class_name}, #{@relation_params.join(", ")}) }
+ let(:query) do
+ %(query {
+ #{class_name.singularize.camelize(:lower)}Search(filter: {
+ isDeleted: false
+ }) {
+ edges {
+ cursor
+ node {
+ id
+ TEXT
+ else
+ new_line.write(<<-TEXT)
+ let!(:#{class_name}) { FactoryBot.create(:#{class_name}, #{@relation_params.join(', ')}) }
- let(:query) do
- %(query {
- #{class_name.singularize.camelize(:lower)}Search(filter: {
- isDeleted: false
- }) {
- edges {
- cursor
- node {
- id
- EOS
- end
- break
+ let(:query) do
+ %(query {
+ #{class_name.singularize.camelize(:lower)}Search(filter: {
+ isDeleted: false
+ }) {
+ edges {
+ cursor
+ node {
+ id
+ TEXT
end
- _, name = line.split(",")[0].gsub("\"", "").scan(/((?<=t\.).+(?=\s)) (.+)/)[0]
- case name
- when /$*_id\z/
- relation_col = name.gsub("_id", "")
- @relation_params << "#{name}: #{relation_col}.id"
- new_line.write " let(:#{relation_col}) { FactoryBot.create(:#{relation_col}) }\n"
- end
+ break
end
- if table_check(line: line, class_name: class_name)
- @on = true
+ _, name = line.split(",")[0].gsub("\"", "").scan(/((?<=t\.).+(?=\s)) (.+)/)[0]
+ case name
+ when /$*_id\z/
+ relation_col = name.gsub("_id", "")
+ @relation_params << "#{name}: #{relation_col}.id"
+ new_line.write(" let(:#{relation_col}) { FactoryBot.create(:#{relation_col}) }\n")
end
end
+ @on = true if table_check(line: line, class_name: class_name)
end
end
end
+ end
- def rspec_resolver_params class_name: "souls"
- file_path = "./spec/resolvers/#{class_name.singularize}_search_spec.rb"
- path = "./db/schema.rb"
- @on = false
- File.open(file_path, "a") do |new_line|
- File.open(path, "r") do |f|
- f.each_line.with_index do |line, i|
- if @on
- if line.include?("end") || line.include?("t.index")
- new_line.write <<-EOS
- }
+ def self.rspec_resolver_params(class_name: "souls")
+ file_path = "./spec/resolvers/#{class_name.singularize}_search_spec.rb"
+ path = "./db/schema.rb"
+ @on = false
+ File.open(file_path, "a") do |new_line|
+ File.open(path, "r") do |f|
+ f.each_line.with_index do |line, _i|
+ if @on
+ if line.include?("end") || line.include?("t.index")
+ new_line.write(<<-TEXT)
}
- nodes {
- id
- }
- pageInfo {
- endCursor
- hasNextPage
- startCursor
- hasPreviousPage
- }
}
+ nodes {
+ id
+ }
+ pageInfo {
+ endCursor
+ hasNextPage
+ startCursor
+ hasPreviousPage
+ }
}
- )
- end
+ }
+ )
+ end
- subject(:result) do
- SoulsApiSchema.execute(query).as_json
- end
+ subject(:result) do
+ SoulsApiSchema.execute(query).as_json
+ end
- it "return #{class_name.camelize} Data" do
- begin
- a1 = result.dig("data", "#{class_name.singularize.camelize(:lower)}Search", "edges")[0]["node"]
- raise unless a1.present?
- rescue
- raise StandardError, result
- end
- expect(a1).to include(
- "id" => be_a(String),
- EOS
- break
- end
- _, name = line.split(",")[0].gsub("\"", "").scan(/((?<=t\.).+(?=\s)) (.+)/)[0]
- case name
- when "user_id", "created_at", "updated_at", /$*_id\z/
- next
- else
- new_line.write " #{name.camelize(:lower)}\n"
- end
+ it "return #{class_name.camelize} Data" do
+ begin
+ a1 = result.dig("data", "#{class_name.singularize.camelize(:lower)}Search", "edges")[0]["node"]
+ raise unless a1.present?
+ rescue
+ raise StandardError, result
+ end
+ expect(a1).to include(
+ "id" => be_a(String),
+ TEXT
+ break
end
- if table_check(line: line, class_name: class_name)
- @on = true
+ _, name = line.split(",")[0].gsub("\"", "").scan(/((?<=t\.).+(?=\s)) (.+)/)[0]
+ case name
+ when "user_id", "created_at", "updated_at", /$*_id\z/
+ next
+ else
+ new_line.write(" #{name.camelize(:lower)}\n")
end
end
+ @on = true if table_check(line: line, class_name: class_name)
end
end
end
+ end
- def rspec_resolver_end class_name: "souls"
- file_path = "./spec/resolvers/#{class_name.singularize}_search_spec.rb"
- path = "./db/schema.rb"
- @on = false
- File.open(file_path, "a") do |new_line|
- File.open(path, "r") do |f|
- f.each_line.with_index do |line, i|
- if @on
- if line.include?("end") || line.include?("t.index")
- new_line.write <<~EOS
- )
- end
+ def self.rspec_resolver_end(class_name: "souls")
+ file_path = "./spec/resolvers/#{class_name.singularize}_search_spec.rb"
+ path = "./db/schema.rb"
+ @on = false
+ File.open(file_path, "a") do |new_line|
+ File.open(path, "r") do |f|
+ f.each_line.with_index do |line, _i|
+ if @on
+ if line.include?("end") || line.include?("t.index")
+ new_line.write(<<~TEXT)
+ )
end
end
- EOS
- break
- end
- type, name = line.split(",")[0].gsub("\"", "").scan(/((?<=t\.).+(?=\s)) (.+)/)[0]
- field ||= type_check type
- array_true = line.include?("array: true")
- case name
- when "user_id", "created_at", "updated_at", /$*_id\z/
- next
- else
- case type
- when "text", "date", "datetime"
- if array_true
- new_line.write " \"#{name.camelize(:lower)}\" => be_all(String),\n"
- else
- new_line.write " \"#{name.camelize(:lower)}\" => be_a(String),\n"
- end
- when "boolean"
- new_line.write " \"#{name.singularize.camelize(:lower)}\" => be_in([true, false]),\n"
- when "string", "bigint", "integer", "float"
- new_line.write " \"#{name.singularize.camelize(:lower)}\" => be_a(#{field}),\n"
end
+ TEXT
+ break
+ end
+ type, name = line.split(",")[0].gsub("\"", "").scan(/((?<=t\.).+(?=\s)) (.+)/)[0]
+ field ||= type_check(type)
+ array_true = line.include?("array: true")
+ case name
+ when "user_id", "created_at", "updated_at", /$*_id\z/
+ next
+ else
+ case type
+ when "text", "date", "datetime"
+ if array_true
+ new_line.write(" \"#{name.camelize(:lower)}\" => be_all(String),\n")
+ else
+ new_line.write(" \"#{name.camelize(:lower)}\" => be_a(String),\n")
+ end
+ when "boolean"
+ new_line.write(" \"#{name.singularize.camelize(:lower)}\" => be_in([true, false]),\n")
+ when "string", "bigint", "integer", "float"
+ new_line.write(" \"#{name.singularize.camelize(:lower)}\" => be_a(#{field}),\n")
end
end
- if table_check(line: line, class_name: class_name)
- @on = true
- end
end
+ @on = true if table_check(line: line, class_name: class_name)
end
end
- file_path
end
+ file_path
+ end
- def rspec_resolver class_name: "souls"
- singularized_class_name = class_name.singularize
- file_path = "#{Dir.pwd}/spec/resolvers/#{singularized_class_name}_search_spec.rb"
- return "Resolver already exist! #{file_path}" if File.exist? file_path
- rspec_resolver_head class_name: singularized_class_name
- rspec_resolver_after_head class_name: singularized_class_name
- rspec_resolver_params class_name: singularized_class_name
- rspec_resolver_end class_name: singularized_class_name
- puts Paint % ["Created file! : %{white_text}", :green, { white_text: [file_path.to_s, :white] }]
- file_path
- rescue StandardError => e
- raise StandardError, e
- end
+ def self.rspec_resolver(class_name: "souls")
+ singularized_class_name = class_name.singularize
+ file_path = "#{Dir.pwd}/spec/resolvers/#{singularized_class_name}_search_spec.rb"
+ return "Resolver already exist! #{file_path}" if File.exist?(file_path)
+
+ rspec_resolver_head(class_name: singularized_class_name)
+ rspec_resolver_after_head(class_name: singularized_class_name)
+ rspec_resolver_params(class_name: singularized_class_name)
+ rspec_resolver_end(class_name: singularized_class_name)
+ puts(Paint % ["Created file! : %{white_text}", :green, { white_text: [file_path.to_s, :white] }])
+ file_path
+ rescue StandardError => e
+ raise(StandardError, e)
end
end
end