foobara-crud-driver-spec-helpers 1.0.2 → 1.1.2
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/CHANGELOG.md +12 -0
- data/lib/foobara/spec_helpers/it_behaves_like_a_crud_driver.rb +42 -2
- metadata +7 -1
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: a2dca3091bf58d448f814ccaa84a7baf8e8af3b9fd47bf67b0a6130e7f075f7c
|
|
4
|
+
data.tar.gz: 136f095db11a1e357952d465fda40d3663ee2f43cd86cccb6c2841e6dec990d1
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 1140677e50a2b801c7722605963ed8fea89ba5115c8f82f3f37e8241f301729200b394eca30741e0687a1ddb956e4d9c94596cc0a7bce990086cc3fdacbceac7
|
|
7
|
+
data.tar.gz: 00ed0dbbf750606589c6e1bc4f20c34fce203f4b55cbe0e4425502ff8cb5b75b5e272bd9e22cba727905a4fb42cc86be11370e38009514f33f098e788ee9117a
|
data/CHANGELOG.md
CHANGED
|
@@ -1,3 +1,15 @@
|
|
|
1
|
+
## [1.1.2] - 2025-11-09
|
|
2
|
+
|
|
3
|
+
- Test a direct entity -> entity association
|
|
4
|
+
|
|
5
|
+
## [1.1.1] - 2025-10-21
|
|
6
|
+
|
|
7
|
+
- prefix: has been renamed table_prefix:
|
|
8
|
+
|
|
9
|
+
## [1.1.0] - 2025-10-21
|
|
10
|
+
|
|
11
|
+
- Add examples for prefix behavior
|
|
12
|
+
|
|
1
13
|
## [1.0.2] - 2025-08-16
|
|
2
14
|
|
|
3
15
|
- Add missing base64 dependency
|
|
@@ -8,12 +8,50 @@ module RspecHelpers
|
|
|
8
8
|
entity_class.current_transaction_table.entity_attributes_crud_driver_table
|
|
9
9
|
end
|
|
10
10
|
|
|
11
|
+
let(:driver) { entity_class.entity_base.entity_attributes_crud_driver }
|
|
12
|
+
let(:driver_class) { driver.class }
|
|
13
|
+
|
|
11
14
|
describe ".has_real_transactions?" do
|
|
12
15
|
it "is a boolean" do
|
|
13
16
|
expect([true, false]).to include(described_class.has_real_transactions?)
|
|
14
17
|
end
|
|
15
18
|
end
|
|
16
19
|
|
|
20
|
+
describe "#table_for" do
|
|
21
|
+
context "when using a table_prefix" do
|
|
22
|
+
let(:table_prefix) { "some_prefix" }
|
|
23
|
+
let(:prefixed_crud_driver) { driver_class.new(table_prefix:) }
|
|
24
|
+
let(:entity_class) do
|
|
25
|
+
stub_module("SomeOrg") { foobara_organization! }
|
|
26
|
+
stub_module("SomeOrg::SomeDomain") { foobara_domain! }
|
|
27
|
+
stub_class("SomeOrg::SomeDomain::SomeEntity", Foobara::Entity) do
|
|
28
|
+
attributes do
|
|
29
|
+
id :integer
|
|
30
|
+
foo :integer
|
|
31
|
+
bar :symbol
|
|
32
|
+
created_at :datetime, :allow_nil
|
|
33
|
+
end
|
|
34
|
+
|
|
35
|
+
primary_key :id
|
|
36
|
+
end
|
|
37
|
+
end
|
|
38
|
+
|
|
39
|
+
it "includes the table_prefix in the table name" do
|
|
40
|
+
table = prefixed_crud_driver.table_for(entity_class)
|
|
41
|
+
expect(table.table_name).to eq("some_prefix_some_entity")
|
|
42
|
+
end
|
|
43
|
+
|
|
44
|
+
context "when table_prefix is true" do
|
|
45
|
+
let(:table_prefix) { true }
|
|
46
|
+
|
|
47
|
+
it "uses the org and domain as the table_prefix" do
|
|
48
|
+
table = prefixed_crud_driver.table_for(entity_class)
|
|
49
|
+
expect(table.table_name).to eq("some_org_some_domain_some_entity")
|
|
50
|
+
end
|
|
51
|
+
end
|
|
52
|
+
end
|
|
53
|
+
end
|
|
54
|
+
|
|
17
55
|
context "tests from redis-crud-driver" do
|
|
18
56
|
let(:entity_class) do
|
|
19
57
|
stub_class("SomeEntity", Foobara::Entity) do
|
|
@@ -449,6 +487,7 @@ module RspecHelpers
|
|
|
449
487
|
id :integer
|
|
450
488
|
foo :integer
|
|
451
489
|
some_model SomeModel, :required
|
|
490
|
+
some_entity SomeEntity, :required
|
|
452
491
|
some_entities [SomeEntity]
|
|
453
492
|
end
|
|
454
493
|
|
|
@@ -490,6 +529,7 @@ module RspecHelpers
|
|
|
490
529
|
entity_class.transaction do
|
|
491
530
|
some_entity3 = entity_class.create(foo: 11, bar: :baz, id: 102)
|
|
492
531
|
some_entity4 = entity_class.create(foo: 11, bar: :baz)
|
|
532
|
+
some_entity5 = entity_class.create(foo: 21, bar: :bazbaz)
|
|
493
533
|
some_other_entity = SomeOtherEntity.create(foo: 11)
|
|
494
534
|
|
|
495
535
|
some_model = SomeModel.new(some_other_entity:)
|
|
@@ -497,6 +537,7 @@ module RspecHelpers
|
|
|
497
537
|
aggregate_class.create(
|
|
498
538
|
foo: 30,
|
|
499
539
|
some_model:,
|
|
540
|
+
some_entity: some_entity5,
|
|
500
541
|
some_entities: [
|
|
501
542
|
1,
|
|
502
543
|
some_entity1,
|
|
@@ -522,6 +563,7 @@ module RspecHelpers
|
|
|
522
563
|
|
|
523
564
|
new_aggregate = aggregate_class.create(
|
|
524
565
|
foo: "30",
|
|
566
|
+
some_entity: entity_class.create(foo: 31, bar: :bazbazbaz),
|
|
525
567
|
some_entities: [
|
|
526
568
|
entity_class.create(foo: 11, bar: :baz)
|
|
527
569
|
],
|
|
@@ -551,8 +593,6 @@ module RspecHelpers
|
|
|
551
593
|
end
|
|
552
594
|
|
|
553
595
|
describe "#all" do
|
|
554
|
-
let(:driver) { entity_class.entity_base.entity_attributes_crud_driver }
|
|
555
|
-
|
|
556
596
|
context "when using string ids" do
|
|
557
597
|
let(:entity_class) do
|
|
558
598
|
stub_class("SomeEntityStringId", Foobara::Entity) do
|
metadata
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: foobara-crud-driver-spec-helpers
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 1.
|
|
4
|
+
version: 1.1.2
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Miles Georgi
|
|
@@ -27,6 +27,9 @@ dependencies:
|
|
|
27
27
|
name: foobara
|
|
28
28
|
requirement: !ruby/object:Gem::Requirement
|
|
29
29
|
requirements:
|
|
30
|
+
- - ">="
|
|
31
|
+
- !ruby/object:Gem::Version
|
|
32
|
+
version: 0.2.0
|
|
30
33
|
- - "<"
|
|
31
34
|
- !ruby/object:Gem::Version
|
|
32
35
|
version: 2.0.0
|
|
@@ -34,6 +37,9 @@ dependencies:
|
|
|
34
37
|
prerelease: false
|
|
35
38
|
version_requirements: !ruby/object:Gem::Requirement
|
|
36
39
|
requirements:
|
|
40
|
+
- - ">="
|
|
41
|
+
- !ruby/object:Gem::Version
|
|
42
|
+
version: 0.2.0
|
|
37
43
|
- - "<"
|
|
38
44
|
- !ruby/object:Gem::Version
|
|
39
45
|
version: 2.0.0
|