Skip to content

Commit

Permalink
Fix specs
Browse files Browse the repository at this point in the history
  • Loading branch information
vankiru committed Jan 27, 2025
1 parent f1e540c commit b07f307
Show file tree
Hide file tree
Showing 6 changed files with 60 additions and 28 deletions.
8 changes: 4 additions & 4 deletions spec/compability/service.rb
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ def start
add_service
add_endpoints
end

def stop
@service.stop
end
Expand All @@ -26,19 +26,19 @@ def add_service
name: "demo",
version: "1.0.0",
description: "demo service",
metadata: { workload: "cpu" }
metadata: {workload: "cpu"}
)

service.on_stats do |endpoint|
{ endpoint: endpoint.name }
{endpoint: endpoint.name}
end
end

def add_endpoints
group1 = service.add_group("g1")
group2 = service.add_group("g2", queue: "group-queue")

add_endpoint(service, "demo-default-queue", subject: "demo.default", metadata: { key: "value" })
add_endpoint(service, "demo-default-queue", subject: "demo.default", metadata: {key: "value"})
add_endpoint(service, "demo-custom-queue", subject: "demo.default", queue: "endpoint-group")

add_endpoint(group1, "g1-parent-queue", subject: "parent.queue")
Expand Down
29 changes: 22 additions & 7 deletions spec/service/endpoint_spec.rb
Original file line number Diff line number Diff line change
Expand Up @@ -16,11 +16,12 @@
let(:service) { client.add_service(name: "foo", queue: "queue") }

subject do
described_class.new(name: name, options: options, parent: service, &block)
described_class.new(name: name, options: options, parent: parent, &block)
end

let(:name) { "bar" }
let(:options) { {} }
let(:parent) { service }
let(:block) { ->(msg) { msg.respond("bar") } }

after { service.stop }
Expand All @@ -46,19 +47,33 @@
end
end

context "when parent is a service" do
it "builds sets subject to name" do
expect(subject.subject).to eq("bar")
end
end

context "when parent is a group" do
let(:parent) { service.add_group("baz") }

it "builds subject based on parent.subject" do
expect(subject.subject).to eq("baz.bar")
end
end

context "when options[:subject] is present" do
let(:options) { {subject: "baz"} }

it "builds subject based on options[:subject]" do
expect(subject.subject).to eq("foo.baz")
expect(subject.subject).to eq("baz")
end
end

context "when options[:subject] is blank" do
let(:options) { {subject: nil} }

it "builds subject based on endpoint name" do
expect(subject.subject).to eq("foo.bar")
expect(subject.subject).to eq("bar")
end
end

Expand Down Expand Up @@ -121,7 +136,7 @@
let(:request) do
subject
begin
client.request("foo.bar")
client.request("bar")
rescue
nil
end
Expand Down Expand Up @@ -195,7 +210,7 @@
subject.stop

expect(subs.values).to include(
having_attributes(subject: "foo.bar", drained: true)
having_attributes(subject: "bar", drained: true)
)
end

Expand All @@ -209,7 +224,7 @@
describe "#reset" do
before do
subject
3.times { client.request("foo.bar") }
3.times { client.request("bar") }
end

it "resets endpoint stats" do
Expand All @@ -220,7 +235,7 @@
processing_time: 0,
average_processing_time: 0,
num_errors: 0,
last_error: nil
last_error: ""
)
end
end
Expand Down
4 changes: 3 additions & 1 deletion spec/service/extension_examples.rb
Original file line number Diff line number Diff line change
@@ -1,7 +1,9 @@
# frozen_string_literal: true

RSpec.shared_examples "extension" do |params|
let(:subject_value) { "#{subject.subject}.baz" }
let(:subject_value) do
subject.is_a?(NATS::Service) ? "baz" : "#{subject.subject}.baz"
end

describe "#add_group" do
context "when queue is specified" do
Expand Down
37 changes: 26 additions & 11 deletions spec/service/group_spec.rb
Original file line number Diff line number Diff line change
Expand Up @@ -3,13 +3,14 @@
require_relative "extension_examples"

RSpec.describe NATS::Service::Group do
subject { described_class.new(name: name, parent: service, queue: queue) }
subject { described_class.new(name: name, parent: parent, queue: queue) }

let(:name) { "bar" }
let(:queue) { "queue" }

let(:client) { NATS.connect }
let(:service) { client.add_service(name: "foo", queue: "default") }
let(:parent) { service }

before(:all) do
@server = NatsServerControl.new
Expand All @@ -25,16 +26,10 @@
include_examples "extension"

describe "#initialize" do
it "sets name" do
expect(subject.name).to eq("bar")
end

it "builds subject" do
expect(subject.subject).to eq("foo.bar")
end

it "sets queue" do
expect(subject.queue).to eq("queue")
context "when name is valid" do
it "sets name" do
expect(subject.name).to eq("bar")
end
end

context "when name is invalid" do
Expand All @@ -45,6 +40,26 @@
end
end

context "when parent is a service" do
it "sets subject to name" do
expect(subject.subject).to eq("bar")
end
end

context "when parent is a group" do
let(:parent) { service.add_group("baz") }

it "builds subject based on group.subject" do
expect(subject.subject).to eq("baz.bar")
end
end

context "when queue is valid" do
it "sets queue" do
expect(subject.queue).to eq("queue")
end
end

context "when queue is blank" do
let(:queue) { nil }

Expand Down
4 changes: 2 additions & 2 deletions spec/service/stats_spec.rb
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@
processing_time: 0,
average_processing_time: 0,
num_errors: 0,
last_error: nil
last_error: ""
)
end

Expand All @@ -27,7 +27,7 @@
processing_time: 0,
average_processing_time: 0,
num_errors: 0,
last_error: nil
last_error: ""
)
end
end
Expand Down
6 changes: 3 additions & 3 deletions spec/service_spec.rb
Original file line number Diff line number Diff line change
Expand Up @@ -285,8 +285,8 @@
subject.add_endpoint("bar") { |msg| msg.respond("bar") }
subject.add_endpoint("baz") { |msg| msg.respond("baz") }

client.request("foo.bar")
client.request("foo.baz")
client.request("bar")
client.request("baz")
end

it "resets all endpoints stats" do
Expand All @@ -298,7 +298,7 @@
processing_time: 0,
average_processing_time: 0,
num_errors: 0,
last_error: nil
last_error: ""
)
end
end
Expand Down

0 comments on commit b07f307

Please sign in to comment.