mirror of
https://github.com/Freika/dawarich.git
synced 2026-01-10 01:01:39 -05:00
78 lines
2.1 KiB
Ruby
78 lines
2.1 KiB
Ruby
# frozen_string_literal: true
|
|
|
|
require 'rails_helper'
|
|
|
|
RSpec.describe TracksChannel, type: :channel do
|
|
let(:user) { create(:user) }
|
|
|
|
describe '#subscribed' do
|
|
it 'successfully subscribes to the channel' do
|
|
stub_connection current_user: user
|
|
|
|
subscribe
|
|
|
|
expect(subscription).to be_confirmed
|
|
expect(subscription).to have_stream_for(user)
|
|
end
|
|
end
|
|
|
|
describe 'track broadcasting' do
|
|
let!(:track) { create(:track, user: user) }
|
|
|
|
before do
|
|
stub_connection current_user: user
|
|
subscribe
|
|
end
|
|
|
|
it 'broadcasts track creation' do
|
|
expect {
|
|
TracksChannel.broadcast_to(user, {
|
|
action: 'created',
|
|
track: {
|
|
id: track.id,
|
|
start_at: track.start_at.iso8601,
|
|
end_at: track.end_at.iso8601,
|
|
distance: track.distance,
|
|
avg_speed: track.avg_speed,
|
|
duration: track.duration,
|
|
elevation_gain: track.elevation_gain,
|
|
elevation_loss: track.elevation_loss,
|
|
elevation_max: track.elevation_max,
|
|
elevation_min: track.elevation_min,
|
|
original_path: track.original_path.to_s
|
|
}
|
|
})
|
|
}.to have_broadcasted_to(user)
|
|
end
|
|
|
|
it 'broadcasts track updates' do
|
|
expect {
|
|
TracksChannel.broadcast_to(user, {
|
|
action: 'updated',
|
|
track: {
|
|
id: track.id,
|
|
start_at: track.start_at.iso8601,
|
|
end_at: track.end_at.iso8601,
|
|
distance: track.distance,
|
|
avg_speed: track.avg_speed,
|
|
duration: track.duration,
|
|
elevation_gain: track.elevation_gain,
|
|
elevation_loss: track.elevation_loss,
|
|
elevation_max: track.elevation_max,
|
|
elevation_min: track.elevation_min,
|
|
original_path: track.original_path.to_s
|
|
}
|
|
})
|
|
}.to have_broadcasted_to(user)
|
|
end
|
|
|
|
it 'broadcasts track destruction' do
|
|
expect {
|
|
TracksChannel.broadcast_to(user, {
|
|
action: 'destroyed',
|
|
track_id: track.id
|
|
})
|
|
}.to have_broadcasted_to(user)
|
|
end
|
|
end
|
|
end
|