spec_forge 0.5.0 → 0.6.0
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 +4 -4
- data/.standard.yml +3 -3
- data/CHANGELOG.md +106 -1
- data/README.md +34 -22
- data/flake.lock +3 -3
- data/flake.nix +8 -2
- data/lib/spec_forge/attribute/chainable.rb +208 -20
- data/lib/spec_forge/attribute/factory.rb +91 -14
- data/lib/spec_forge/attribute/faker.rb +62 -13
- data/lib/spec_forge/attribute/global.rb +96 -0
- data/lib/spec_forge/attribute/literal.rb +15 -2
- data/lib/spec_forge/attribute/matcher.rb +186 -11
- data/lib/spec_forge/attribute/parameterized.rb +45 -12
- data/lib/spec_forge/attribute/regex.rb +55 -5
- data/lib/spec_forge/attribute/resolvable.rb +48 -5
- data/lib/spec_forge/attribute/resolvable_array.rb +62 -4
- data/lib/spec_forge/attribute/resolvable_hash.rb +62 -4
- data/lib/spec_forge/attribute/store.rb +65 -0
- data/lib/spec_forge/attribute/transform.rb +33 -5
- data/lib/spec_forge/attribute/variable.rb +37 -6
- data/lib/spec_forge/attribute.rb +166 -66
- data/lib/spec_forge/backtrace_formatter.rb +26 -3
- data/lib/spec_forge/callbacks.rb +79 -0
- data/lib/spec_forge/cli/actions.rb +27 -0
- data/lib/spec_forge/cli/command.rb +78 -24
- data/lib/spec_forge/cli/init.rb +11 -1
- data/lib/spec_forge/cli/new.rb +54 -3
- data/lib/spec_forge/cli/run.rb +20 -0
- data/lib/spec_forge/cli.rb +16 -5
- data/lib/spec_forge/configuration.rb +94 -22
- data/lib/spec_forge/context/callbacks.rb +91 -0
- data/lib/spec_forge/context/global.rb +72 -0
- data/lib/spec_forge/context/store.rb +148 -0
- data/lib/spec_forge/context/variables.rb +91 -0
- data/lib/spec_forge/context.rb +36 -0
- data/lib/spec_forge/core_ext/rspec.rb +22 -4
- data/lib/spec_forge/error.rb +267 -113
- data/lib/spec_forge/factory.rb +33 -14
- data/lib/spec_forge/filter.rb +87 -0
- data/lib/spec_forge/forge.rb +170 -0
- data/lib/spec_forge/http/backend.rb +99 -29
- data/lib/spec_forge/http/client.rb +23 -13
- data/lib/spec_forge/http/request.rb +74 -62
- data/lib/spec_forge/http/verb.rb +79 -0
- data/lib/spec_forge/http.rb +105 -0
- data/lib/spec_forge/loader.rb +254 -0
- data/lib/spec_forge/matchers.rb +130 -0
- data/lib/spec_forge/normalizer/configuration.rb +24 -11
- data/lib/spec_forge/normalizer/constraint.rb +21 -8
- data/lib/spec_forge/normalizer/expectation.rb +31 -12
- data/lib/spec_forge/normalizer/factory.rb +24 -11
- data/lib/spec_forge/normalizer/factory_reference.rb +27 -13
- data/lib/spec_forge/normalizer/global_context.rb +88 -0
- data/lib/spec_forge/normalizer/spec.rb +39 -16
- data/lib/spec_forge/normalizer.rb +255 -41
- data/lib/spec_forge/runner/callbacks.rb +246 -0
- data/lib/spec_forge/runner/debug_proxy.rb +213 -0
- data/lib/spec_forge/runner/listener.rb +54 -0
- data/lib/spec_forge/runner/metadata.rb +58 -0
- data/lib/spec_forge/runner/state.rb +99 -0
- data/lib/spec_forge/runner.rb +132 -123
- data/lib/spec_forge/spec/expectation/constraint.rb +91 -20
- data/lib/spec_forge/spec/expectation.rb +43 -51
- data/lib/spec_forge/spec.rb +83 -96
- data/lib/spec_forge/type.rb +36 -4
- data/lib/spec_forge/version.rb +4 -1
- data/lib/spec_forge.rb +161 -76
- metadata +20 -5
- data/spec_forge/factories/user.yml +0 -4
- data/spec_forge/forge_helper.rb +0 -48
- data/spec_forge/specs/users.yml +0 -65
data/spec_forge/specs/users.yml
DELETED
@@ -1,65 +0,0 @@
|
|
1
|
-
index_users:
|
2
|
-
url: /users
|
3
|
-
expectations:
|
4
|
-
- expect:
|
5
|
-
status: 200
|
6
|
-
|
7
|
-
show_user:
|
8
|
-
url: /users/{id}
|
9
|
-
expectations:
|
10
|
-
- query:
|
11
|
-
id: -1
|
12
|
-
expect:
|
13
|
-
status: 404
|
14
|
-
- query:
|
15
|
-
id: 1
|
16
|
-
expect:
|
17
|
-
status: 200
|
18
|
-
json:
|
19
|
-
name: kind_of.string
|
20
|
-
email: /\w+@example\.com/i
|
21
|
-
|
22
|
-
create_user:
|
23
|
-
url: /users
|
24
|
-
method: post
|
25
|
-
expectations:
|
26
|
-
- expect:
|
27
|
-
status: 400
|
28
|
-
- expect:
|
29
|
-
status: 200
|
30
|
-
json:
|
31
|
-
name: variables.name
|
32
|
-
role: variables.role
|
33
|
-
variables:
|
34
|
-
name: faker.name.name
|
35
|
-
role: user
|
36
|
-
body:
|
37
|
-
name: variables.name
|
38
|
-
|
39
|
-
update_user:
|
40
|
-
url: /users/{id}
|
41
|
-
method: patch
|
42
|
-
query:
|
43
|
-
id: 1
|
44
|
-
variables:
|
45
|
-
number:
|
46
|
-
faker.number.between:
|
47
|
-
from: 100000
|
48
|
-
to: 999999
|
49
|
-
expectations:
|
50
|
-
- expect:
|
51
|
-
status: 200
|
52
|
-
json:
|
53
|
-
name: kind_of.string
|
54
|
-
number: kind_of.integer
|
55
|
-
body:
|
56
|
-
number: variables.number
|
57
|
-
|
58
|
-
destroy_user:
|
59
|
-
url: /users/{id}
|
60
|
-
method: delete
|
61
|
-
query:
|
62
|
-
id: 1
|
63
|
-
expectations:
|
64
|
-
- expect:
|
65
|
-
status: 200
|