webspicy 0.20.13 → 0.20.14

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: 01b2fecc83c9d660dc6eba242b306e965196a6ecf9ad12b9b0e5929d9394e1ab
4
- data.tar.gz: 16e008749db41f89755e9c0cc65457e438383044aaf54c6e171fc565b2da8ba0
3
+ metadata.gz: 2a89789c42cdaf51eb907eaf6053eef356acff66102ccb1f579bbb2a85168e56
4
+ data.tar.gz: 8afcba7ec470f2689300f2f9fe4122b7e0e11981617812fc5ce031df213adeb3
5
5
  SHA512:
6
- metadata.gz: 0f7a18cbbfead965fefc954c07ea8ebb2d91e60cfd0e72c2658ec5e7c5c1425b6d9f0c8e2d3c09e7b3399697ab299c36f9873e1837422f785e96e1a298cccfaa
7
- data.tar.gz: 12377e4af44a7b6d65c6daf3c83a41d1201ec3deab8922343b25f8f6483f07fb997dca45ed6e3fbc243c5f869c915642a7e6a867bf90dc0e5f8bae5fda7fb726
6
+ metadata.gz: fe767864fe5185515cfc9e20a7e5941ba1907979f86904920811c0c44821b8dcf7901f847b310db703497c83a18278b340b6ba30a018c44233660c82657625ec
7
+ data.tar.gz: 749a0253312d49f05f46e5bd3022c2b657ddccfa0046fc0bdc70a68028161fc68c6f53d0c8e1b3e1cae00e333eb8b8c6429a3034090f5a1e54ea9b8958e81f2f
@@ -18,6 +18,23 @@ module Webspicy
18
18
  @to ||= data["personalizations"]
19
19
  .select{|h| h.key? "to" }
20
20
  .map{|(h)| h["to"] }
21
+ .flatten
22
+ .map{|(h)| h["email"] }
23
+ end
24
+
25
+ def cc
26
+ @cc ||= data["personalizations"]
27
+ .select{|h| h.key? "cc" }
28
+ .map{|(h)| h["cc"] }
29
+ .flatten
30
+ .map{|(h)| h["email"] }
31
+ end
32
+
33
+ def bcc
34
+ @bcc ||= data["personalizations"]
35
+ .select{|h| h.key? "bcc" }
36
+ .map{|(h)| h["bcc"] }
37
+ .flatten
21
38
  .map{|(h)| h["email"] }
22
39
  end
23
40
 
@@ -1,3 +1,5 @@
1
+ require 'mail'
2
+
1
3
  module Webspicy
2
4
  class Tester
3
5
  class Fakeses
@@ -9,13 +11,10 @@ module Webspicy
9
11
  attr_reader :data
10
12
 
11
13
  def from
12
- rx = /^From:\s*(.*)$/
13
- raw_data
14
- .each_line
15
- .find{|l| l =~ rx }[rx, 1].strip
14
+ email.from
16
15
  end
17
16
 
18
- def to
17
+ def recipients
19
18
  data["body"]
20
19
  .each_pair
21
20
  .select{|(k,v)|
@@ -24,11 +23,24 @@ module Webspicy
24
23
  .map{|(k,v)| v.strip }
25
24
  end
26
25
 
26
+ def to
27
+ email.to
28
+ end
29
+
27
30
  def subject
28
- rx = /^Subject:\s*(.*)$/
29
- raw_data
30
- .each_line
31
- .find{|l| l =~ rx }[rx, 1].strip
31
+ email.subject
32
+ end
33
+
34
+ def cc
35
+ email.cc
36
+ end
37
+
38
+ def bcc
39
+ recipients - cc - to
40
+ end
41
+
42
+ def email
43
+ @email ||= Mail.read_from_string(raw_data)
32
44
  end
33
45
 
34
46
  def raw_data
@@ -16,9 +16,13 @@ module Webspicy
16
16
  end
17
17
 
18
18
  def to
19
- @to ||= data["headerLines"]
20
- .select{|h| h["key"] == "to" }
21
- .map{|h| h["line"][/To:\s*(.*)$/, 1] }
19
+ @to ||= data["to"]["value"]
20
+ .map{|h| h["address"] }
21
+ end
22
+
23
+ def cc
24
+ @cc ||= data["cc"]["value"]
25
+ .map{|h| h["address"] }
22
26
  end
23
27
 
24
28
  def reply_to
@@ -2,7 +2,7 @@ module Webspicy
2
2
  module Version
3
3
  MAJOR = 0
4
4
  MINOR = 20
5
- TINY = 13
5
+ TINY = 14
6
6
  end
7
7
  VERSION = "#{Version::MAJOR}.#{Version::MINOR}.#{Version::TINY}"
8
8
  end
@@ -9,15 +9,28 @@ module Webspicy
9
9
  {
10
10
  "datetime": "2021-06-02T15:29:27.161Z",
11
11
  "from": {
12
- "email": "info@mydomain.be",
13
- "name": "Foo Bar"
12
+ "email": "noreply@webspicy.io",
13
+ "name": "Webspicy"
14
14
  },
15
15
  "subject": "Hello World",
16
16
  "personalizations": [
17
17
  {
18
18
  "to": [
19
19
  {
20
- "email": "support@mydomain.fr"
20
+ "email": "someone@world.com"
21
+ },
22
+ {
23
+ "email": "someoneelse@world.com"
24
+ }
25
+ ],
26
+ "cc": [
27
+ {
28
+ "email": "a-cc-recipient@world.com"
29
+ }
30
+ ],
31
+ "bcc": [
32
+ {
33
+ "email": "a-bcc-recipient@world.com"
21
34
  }
22
35
  ]
23
36
  }
@@ -40,8 +53,10 @@ module Webspicy
40
53
  }
41
54
 
42
55
  it 'works as expected' do
43
- expect(subject.from).to eql("Foo Bar <info@mydomain.be>")
44
- expect(subject.to).to eql(["support@mydomain.fr"])
56
+ expect(subject.from).to eql("Webspicy <noreply@webspicy.io>")
57
+ expect(subject.to).to eql(["someone@world.com", "someoneelse@world.com"])
58
+ expect(subject.cc).to eql(["a-cc-recipient@world.com"])
59
+ expect(subject.bcc).to eql(["a-bcc-recipient@world.com"])
45
60
  expect(subject.subject).to eql("Hello World")
46
61
  end
47
62
 
@@ -9,7 +9,8 @@ module Webspicy
9
9
  Content-Type: multipart/alternative;
10
10
  boundary="--_NmP-d246fd025a6652c9-Part_1"
11
11
  From: Webspicy <noreply@webspicy.io>
12
- To: david.parloir@gmail.com
12
+ To: someone@world.com, someoneelse@world.com
13
+ CC: a-cc-recipient@world.com
13
14
  Subject: Hey world, hello!
14
15
  Message-ID: <2421bae3-9c42-7988-23b4-b1f6168130c9@webspicy.io>
15
16
  Date: Thu, 24 Jun 2021 13:45:16 +0000
@@ -34,6 +35,9 @@ module Webspicy
34
35
  "body": {
35
36
  "Source": "noreply@webspicy.io",
36
37
  "Destinations.member.1": "someone@world.com",
38
+ "Destinations.member.2": "someoneelse@world.com",
39
+ "Destinations.member.3": "a-cc-recipient@world.com",
40
+ "Destinations.member.4": "a-bcc-recipient@world.com",
37
41
  "RawMessage.Data": "#{DATA.gsub /\n/, ''}",
38
42
  "Action": "SendRawEmail",
39
43
  "Version": "2010-12-01"
@@ -46,8 +50,10 @@ module Webspicy
46
50
  }
47
51
 
48
52
  it 'works as expected' do
49
- expect(subject.from).to eql("Webspicy <noreply@webspicy.io>")
50
- expect(subject.to).to eql(["someone@world.com"])
53
+ expect(subject.from).to eql(["noreply@webspicy.io"])
54
+ expect(subject.to).to eql(["someone@world.com", "someoneelse@world.com"])
55
+ expect(subject.cc).to eql(["a-cc-recipient@world.com"])
56
+ expect(subject.bcc).to eql(["a-bcc-recipient@world.com"])
51
57
  expect(subject.subject).to eql("Hey world, hello!")
52
58
  end
53
59
 
@@ -19,11 +19,15 @@ module Webspicy
19
19
  },
20
20
  {
21
21
  "key": "reply-to",
22
- "line": "Reply-To: test@email.be"
22
+ "line": "Reply-To: noreply@webspicy.io"
23
23
  },
24
24
  {
25
25
  "key": "to",
26
- "line": "To: support@mydomain.fr"
26
+ "line": "To: someone@world.com, someoneelse@world.com"
27
+ },
28
+ {
29
+ "key": "cc",
30
+ "line": "Cc: a-cc-recipient@world.com"
27
31
  },
28
32
  {
29
33
  "key": "message-id",
@@ -46,12 +50,14 @@ module Webspicy
46
50
  "to": {
47
51
  "value": [
48
52
  {
49
- "address": "support@mydomain.fr",
53
+ "address": "someone@world.com",
54
+ "name": ""
55
+ },
56
+ {
57
+ "address": "someoneelse@world.com",
50
58
  "name": ""
51
59
  }
52
- ],
53
- "html": "<span class=\\"mp_address_group\\"><a href=\\"mailto:support@mydomain.fr\\" class=\\"mp_address_email\\">support@mydomain.fr</a></span>",
54
- "text": "support@mydomain.fr"
60
+ ]
55
61
  },
56
62
  "from": {
57
63
  "value": [
@@ -59,20 +65,24 @@ module Webspicy
59
65
  "address": "info@mydomain.be",
60
66
  "name": ""
61
67
  }
62
- ],
63
- "html": "<span class=\\"mp_address_group\\"><a href=\\"mailto:info@mydomain.be\\" class=\\"mp_address_email\\">info@mydomain.be</a></span>",
64
- "text": "info@mydomain.be"
68
+ ]
65
69
  },
66
70
  "messageId": "<607edfd56836e_1b0492af@1d3356d02030.mail>",
67
71
  "replyTo": {
68
72
  "value": [
69
73
  {
70
- "address": "test@email.be",
74
+ "address": "noreply@webspicy.io",
75
+ "name": ""
76
+ }
77
+ ]
78
+ },
79
+ "cc": {
80
+ "value": [
81
+ {
82
+ "address": "a-cc-recipient@world.com",
71
83
  "name": ""
72
84
  }
73
- ],
74
- "html": "<span class=\\"mp_address_group\\"><a href=\\"mailto:test@email.be\\" class=\\"mp_address_email\\">test@email.be</a></span>",
75
- "text": "test@email.be"
85
+ ]
76
86
  }
77
87
  }
78
88
  J
@@ -83,7 +93,8 @@ module Webspicy
83
93
 
84
94
  it 'works as expected' do
85
95
  expect(subject.from).to eql("Webspicy <noreply@webspicy.io>")
86
- expect(subject.to).to eql(["support@mydomain.fr"])
96
+ expect(subject.to).to eql(["someone@world.com", "someoneelse@world.com"])
97
+ expect(subject.cc).to eql(["a-cc-recipient@world.com"])
87
98
  expect(subject.subject).to eql("Hello World")
88
99
  end
89
100
 
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: webspicy
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.20.13
4
+ version: 0.20.14
5
5
  platform: ruby
6
6
  authors:
7
7
  - Bernard Lambeau
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2021-06-24 00:00:00.000000000 Z
11
+ date: 2021-06-25 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rake
@@ -212,6 +212,20 @@ dependencies:
212
212
  - - "~>"
213
213
  - !ruby/object:Gem::Version
214
214
  version: '1.0'
215
+ - !ruby/object:Gem::Dependency
216
+ name: mail
217
+ requirement: !ruby/object:Gem::Requirement
218
+ requirements:
219
+ - - "~>"
220
+ - !ruby/object:Gem::Version
221
+ version: '2.7'
222
+ type: :runtime
223
+ prerelease: false
224
+ version_requirements: !ruby/object:Gem::Requirement
225
+ requirements:
226
+ - - "~>"
227
+ - !ruby/object:Gem::Version
228
+ version: '2.7'
215
229
  description: Webspicy helps testing web services as software operation black boxes
216
230
  email: blambeau@gmail.com
217
231
  executables: