Use WebSocket instead of Long Polling (#1142)

This commit is contained in:
boatbomber 2025-11-26 19:57:01 -08:00 • committed by GitHub
parent a61a1bef55
commit 87f58e0a55
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
44 changed files with 1750 additions and 971 deletions

View file

@ -8,6 +8,8 @@ use crate::rojo_test::{
serve_util::{run_serve_test, serialize_to_xml_model},
};
use librojo::web_api::SocketPacketType;
#[test]
fn empty() {
run_serve_test("empty", |session, mut redactions| {
@ -42,10 +44,12 @@ fn scripts() {
fs::write(session.path().join("src/foo.lua"), "Updated foo!").unwrap();
let subscribe_response = session.get_api_subscribe(0).unwrap();
let socket_packet = session
.get_api_socket_packet(SocketPacketType::Messages, 0)
.unwrap();
assert_yaml_snapshot!(
"scripts_subscribe",
subscribe_response.intern_and_redact(&mut redactions, ())
socket_packet.intern_and_redact(&mut redactions, ())
);
let read_response = session.get_api_read(root_id).unwrap();
@ -74,10 +78,12 @@ fn add_folder() {
fs::create_dir(session.path().join("src/my-new-folder")).unwrap();
let subscribe_response = session.get_api_subscribe(0).unwrap();
let socket_packet = session
.get_api_socket_packet(SocketPacketType::Messages, 0)
.unwrap();
assert_yaml_snapshot!(
"add_folder_subscribe",
subscribe_response.intern_and_redact(&mut redactions, ())
socket_packet.intern_and_redact(&mut redactions, ())
);
let read_response = session.get_api_read(root_id).unwrap();
@ -104,10 +110,12 @@ fn remove_file() {
fs::remove_file(session.path().join("src/hello.txt")).unwrap();
let subscribe_response = session.get_api_subscribe(0).unwrap();
let socket_packet = session
.get_api_socket_packet(SocketPacketType::Messages, 0)
.unwrap();
assert_yaml_snapshot!(
"remove_file_subscribe",
subscribe_response.intern_and_redact(&mut redactions, ())
socket_packet.intern_and_redact(&mut redactions, ())
);
let read_response = session.get_api_read(root_id).unwrap();
@ -134,10 +142,12 @@ fn edit_init() {
fs::write(session.path().join("src/init.lua"), b"-- Edited contents").unwrap();
let subscribe_response = session.get_api_subscribe(0).unwrap();
let socket_packet = session
.get_api_socket_packet(SocketPacketType::Messages, 0)
.unwrap();
assert_yaml_snapshot!(
"edit_init_subscribe",
subscribe_response.intern_and_redact(&mut redactions, ())
socket_packet.intern_and_redact(&mut redactions, ())
);
let read_response = session.get_api_read(root_id).unwrap();
@ -180,10 +190,12 @@ fn move_folder_of_stuff() {
// will fail otherwise.
fs::rename(stuff_path, session.path().join("src/new-stuff")).unwrap();
let subscribe_response = session.get_api_subscribe(0).unwrap();
let socket_packet = session
.get_api_socket_packet(SocketPacketType::Messages, 0)
.unwrap();
assert_yaml_snapshot!(
"move_folder_of_stuff_subscribe",
subscribe_response.intern_and_redact(&mut redactions, ())
socket_packet.intern_and_redact(&mut redactions, ())
);
let read_response = session.get_api_read(root_id).unwrap();
@ -214,10 +226,12 @@ fn empty_json_model() {
)
.unwrap();
let subscribe_response = session.get_api_subscribe(0).unwrap();
let socket_packet = session
.get_api_socket_packet(SocketPacketType::Messages, 0)
.unwrap();
assert_yaml_snapshot!(
"empty_json_model_subscribe",
subscribe_response.intern_and_redact(&mut redactions, ())
socket_packet.intern_and_redact(&mut redactions, ())
);
let read_response = session.get_api_read(root_id).unwrap();
@ -245,10 +259,12 @@ fn add_optional_folder() {
fs::create_dir(session.path().join("create-later")).unwrap();
let subscribe_response = session.get_api_subscribe(0).unwrap();
let socket_packet = session
.get_api_socket_packet(SocketPacketType::Messages, 0)
.unwrap();
assert_yaml_snapshot!(
"add_optional_folder_subscribe",
subscribe_response.intern_and_redact(&mut redactions, ())
socket_packet.intern_and_redact(&mut redactions, ())
);
let read_response = session.get_api_read(root_id).unwrap();
@ -437,10 +453,12 @@ fn ref_properties() {
)
.unwrap();
let subscribe_response = session.get_api_subscribe(0).unwrap();
let socket_packet = session
.get_api_socket_packet(SocketPacketType::Messages, 0)
.unwrap();
assert_yaml_snapshot!(
"ref_properties_subscribe",
subscribe_response.intern_and_redact(&mut redactions, ())
socket_packet.intern_and_redact(&mut redactions, ())
);
let read_response = session.get_api_read(root_id).unwrap();
@ -467,10 +485,12 @@ fn ref_properties_remove() {
fs::remove_file(session.path().join("src/target.model.json")).unwrap();
let subscribe_response = session.get_api_subscribe(0).unwrap();
let socket_packet = session
.get_api_socket_packet(SocketPacketType::Messages, 0)
.unwrap();
assert_yaml_snapshot!(
"ref_properties_remove_subscribe",
subscribe_response.intern_and_redact(&mut redactions, ())
socket_packet.intern_and_redact(&mut redactions, ())
);
let read_response = session.get_api_read(root_id).unwrap();
@ -529,10 +549,12 @@ fn ref_properties_patch_update() {
)
.unwrap();
let subscribe_response = session.get_api_subscribe(0).unwrap();
let socket_packet = session
.get_api_socket_packet(SocketPacketType::Messages, 0)
.unwrap();
assert_yaml_snapshot!(
"ref_properties_patch_update_subscribe",
subscribe_response.intern_and_redact(&mut redactions, ())
socket_packet.intern_and_redact(&mut redactions, ())
);
let read_response = session.get_api_read(root_id).unwrap();
@ -581,10 +603,12 @@ fn model_pivot_migration() {
)
.unwrap();
let subscribe_response = session.get_api_subscribe(0).unwrap();
let socket_packet = session
.get_api_socket_packet(SocketPacketType::Messages, 0)
.unwrap();
assert_yaml_snapshot!(
"model_pivot_migration_all",
subscribe_response.intern_and_redact(&mut redactions, ())
socket_packet.intern_and_redact(&mut redactions, ())
);
let read_response = session.get_api_read(root_id).unwrap();