Friday, September 20, 2024 4:07:26 AM
> settings

Customize


Authenticate

> server_spec.rb
# frozen_string_literal: true

describe ESM::Command::Server::Server, category: "command" do
  include_context "command"
  include_examples "validate_command"

  describe "#execute" do
    include_context "connection_v1"

    context "when the server is invalid" do
      it "raises an exception" do
        expect { execute!(arguments: {server_id: "esm_test"}) }.to raise_error(ESM::Exception::CheckFailure)
      end
    end

    context "when the server is online" do
      it "returns the server's information" do
        execute!(arguments: {server_id: server.server_id})
        response = ESM::Test.messages.first.second

        # Reload because the server updates when the WSC connects
        server.reload
        expect(response).not_to be_nil
        expect(response.title).to eq(server.server_name)
        expect(response.description).to be_nil
        expect(response.fields).not_to be_empty
        expect(response.fields.first.name).to eq("Server ID")
        expect(response.fields.first.value).to eq("```#{server.server_id}```")
        expect(response.fields.second.name).to eq("IP")
        expect(response.fields.second.value).to eq("```#{server.server_ip}```")
        expect(response.fields.third.name).to eq("Port")
        expect(response.fields.third.value).to eq("```#{server.server_port}```")
        expect(response.fields.fourth.name).to eq("✅ Online for")
        expect(response.fields.fifth.name).to eq("⏰ Next restart in")
      end
    end

    context "when the server is offline" do
      it "shows limited server information" do
        wsc.disconnect!

        execute!(arguments: {server_id: server.server_id})
      end
    end
  end
end
All opinions represented herein are my own
- © 2024 itsthedevman
- build 340fbb8