fake-file 0.1.2 → 0.1.3

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: 8604d177707d1e69d62924cd0bda9a3a80a76f935811ffc8829b50f4e99ae54d
4
- data.tar.gz: 07e1b86c4984f4d9fc62baa55ac9ec7dbc4fca2764f5abd393dd65a252b04556
3
+ metadata.gz: 9002781e05d76213fa6ccfe94224ea75bd151dd89121ff830b18c2bf646fa91e
4
+ data.tar.gz: c8c6bee5e981e3c65da4f2cc19513e6dbc4f5e8196cbb41f544e937e3e6d4963
5
5
  SHA512:
6
- metadata.gz: fdae3528bc8ea5d47b145d16fd7c45b3fcd2262fded0b410baaa9fe691ebc3e4be126d640df2fe5a3cb87819a4018aadf2913ea3e08e374a58698b54ab64767b
7
- data.tar.gz: bd42a69a20fb01613c8f7530667b2d7086fd259e6e86456c61c3d9be2e3a73934cca8f90dbc70959e23d417d497058db37e6e85d7d2def05750df00130365f72
6
+ metadata.gz: d8f8180cbf254398fe76f6a2cdebe08730ca19562254f250b91bf19bd050d0199ecddcbf09eb9ef54b3d77fc128ea1c285489b1ce8d0fbc76281cef730258788
7
+ data.tar.gz: 33b135ba0068ce26669e5122971ef7bccb83416f759068dc84b6d1b143028b5f85bbd09847b3f7d012ce58b2cbed9b957a3088af6671f3dd22bc98ef7adda757
data/Gemfile.lock CHANGED
@@ -7,6 +7,7 @@ PATH
7
7
  faker
8
8
  matrix
9
9
  prawn-html
10
+ rack-test
10
11
 
11
12
  GEM
12
13
  remote: https://rubygems.org/
@@ -49,6 +50,9 @@ GEM
49
50
  coderay (~> 1.1)
50
51
  method_source (~> 1.0)
51
52
  racc (1.8.1)
53
+ rack (3.2.0)
54
+ rack-test (2.2.0)
55
+ rack (>= 1.3)
52
56
  rake (13.0.6)
53
57
  rspec (3.11.0)
54
58
  rspec-core (~> 3.11.0)
data/README.md CHANGED
@@ -64,6 +64,16 @@ FakeFile.generate(:docx)
64
64
  FakeFile.generate(:xlsx)
65
65
  ```
66
66
 
67
+ ### Rack::Test uploaded file helper
68
+
69
+ ```ruby
70
+ FakeFile.upload(:pdf)
71
+ FakeFile.upload(:docx)
72
+ FakeFile.upload(:xlsx)
73
+ ```
74
+
75
+ Returns `Rack::Test::UploadedFile`, so you can use it directly in request specs.
76
+
67
77
  ## Usage in tests
68
78
 
69
79
  ### ActiveStorage example
@@ -91,6 +101,12 @@ expect(Marcel::MimeType.for(FakeFile.docx))
91
101
  .to eq("application/vnd.openxmlformats-officedocument.wordprocessingml.document")
92
102
  ```
93
103
 
104
+ ### Request spec with Rack::Test
105
+
106
+ ```ruby
107
+ post "/imports", params: { file: FakeFile.upload(:xlsx) }
108
+ ```
109
+
94
110
  ## Adding a new format
95
111
 
96
112
  1. Create a new generator class in `lib/fake-file/generators/`.
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module FakeFile
4
- VERSION = "0.1.2"
4
+ VERSION = "0.1.3"
5
5
  end
data/lib/fake-file.rb CHANGED
@@ -5,13 +5,33 @@ require_relative "fake-file/registry"
5
5
  require_relative "fake-file/generators/pdf_generator"
6
6
  require_relative "fake-file/generators/docx_generator"
7
7
  require_relative "fake-file/generators/xlsx_generator"
8
+ require "rack/test/uploaded_file"
8
9
 
9
10
  module FakeFile
11
+ MIME_TYPES = {
12
+ pdf: "application/pdf",
13
+ docx: "application/vnd.openxmlformats-officedocument.wordprocessingml.document",
14
+ xlsx: "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"
15
+ }.freeze
16
+
10
17
  class << self
11
18
  def generate(format, options = {})
12
19
  Registry.fetch(format).generate(options)
13
20
  end
14
21
 
22
+ def upload(format, options = {})
23
+ generated_file = generate(format, options)
24
+ file_extension = File.extname(generated_file.path)
25
+ filename = "#{format}#{file_extension}"
26
+
27
+ Rack::Test::UploadedFile.new(
28
+ generated_file.path,
29
+ MIME_TYPES.fetch(format.to_sym),
30
+ true,
31
+ original_filename: filename
32
+ )
33
+ end
34
+
15
35
  def pdf(options = {})
16
36
  generate(:pdf, options)
17
37
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: fake-file
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.2
4
+ version: 0.1.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - VasylenchukMischa
@@ -80,6 +80,20 @@ dependencies:
80
80
  - - ">="
81
81
  - !ruby/object:Gem::Version
82
82
  version: '0'
83
+ - !ruby/object:Gem::Dependency
84
+ name: rack-test
85
+ requirement: !ruby/object:Gem::Requirement
86
+ requirements:
87
+ - - ">="
88
+ - !ruby/object:Gem::Version
89
+ version: '0'
90
+ type: :runtime
91
+ prerelease: false
92
+ version_requirements: !ruby/object:Gem::Requirement
93
+ requirements:
94
+ - - ">="
95
+ - !ruby/object:Gem::Version
96
+ version: '0'
83
97
  - !ruby/object:Gem::Dependency
84
98
  name: pry
85
99
  requirement: !ruby/object:Gem::Requirement