Skip to content

Commit

Permalink
Upgrade Gleam & Simplifile (#11)
Browse files Browse the repository at this point in the history
* upgrade to gleam 1.4.1
* upgrade to simplifile 2.0
  • Loading branch information
JonasGruenwald authored Aug 12, 2024
1 parent 945f131 commit 1f82e77
Show file tree
Hide file tree
Showing 26 changed files with 159 additions and 171 deletions.
2 changes: 1 addition & 1 deletion .github/workflows/test.yml
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ jobs:
- uses: erlef/setup-beam@v1
with:
otp-version: "26.0.2"
gleam-version: "1.2.0"
gleam-version: "1.4.1"
rebar3-version: "3"
# elixir-version: "1.15.4"
- uses: browser-actions/setup-chrome@v1
Expand Down
2 changes: 1 addition & 1 deletion .mise.toml
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
[tools]
gleam = "1.2.0"
gleam = "1.4.1"
5 changes: 5 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,8 @@
## [2.2.5] 2024-08-12

- Upgrade to Gleam 1.4.1
- Upgrade `simplifile` to 2.0.0

## [2.2.4] 2024-06-22

- Implement more accurate polling
Expand Down
8 changes: 4 additions & 4 deletions gleam.toml
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
name = "chrobot"
version = "2.2.4"
version = "2.2.5"

description = "A browser automation tool and interface to the Chrome DevTools Protocol."
licences = ["MIT"]
Expand All @@ -19,12 +19,12 @@ gleam_otp = ">= 0.10.0 and < 1.0.0"
gleam_httpc = ">= 2.2.0 and < 3.0.0"
gleam_http = ">= 3.6.0 and < 4.0.0"
filepath = ">= 1.0.0 and < 2.0.0"
simplifile = ">= 1.7.0 and < 2.0.0"
simplifile = ">= 2.0.1 and < 3.0.0"
gleam_community_ansi = ">= 1.4.0 and < 2.0.0"
spinner = ">= 1.1.0 and < 2.0.0"

[dev-dependencies]
gleeunit = ">= 1.0.0 and < 2.0.0"
justin = { path = "./vendor/justin" }
birdie = ">= 1.1.4 and < 2.0.0"
justin_fork = { path = "./vendor/justin_fork" }
birdie = ">= 1.1.8 and < 2.0.0"
mist = ">= 1.2.0 and < 2.0.0"
25 changes: 13 additions & 12 deletions manifest.toml
Original file line number Diff line number Diff line change
Expand Up @@ -3,8 +3,8 @@

packages = [
{ name = "argv", version = "1.0.2", build_tools = ["gleam"], requirements = [], otp_app = "argv", source = "hex", outer_checksum = "BA1FF0929525DEBA1CE67256E5ADF77A7CDDFE729E3E3F57A5BDCAA031DED09D" },
{ name = "birdie", version = "1.1.5", build_tools = ["gleam"], requirements = ["argv", "filepath", "glance", "gleam_community_ansi", "gleam_erlang", "gleam_stdlib", "justin", "rank", "simplifile", "trie_again"], otp_app = "birdie", source = "hex", outer_checksum = "E1B6CB7B9EDE8F4C67F7E68C9FB45FBAA54881545F85D315D2B179560CC63F60" },
{ name = "birl", version = "1.7.0", build_tools = ["gleam"], requirements = ["gleam_stdlib", "ranger"], otp_app = "birl", source = "hex", outer_checksum = "B1FA529E7BE3FF12CADF32814AB8EC7294E74CEDEE8CC734505707B929A98985" },
{ name = "birdie", version = "1.1.8", build_tools = ["gleam"], requirements = ["argv", "filepath", "glance", "gleam_community_ansi", "gleam_erlang", "gleam_stdlib", "justin", "rank", "simplifile", "trie_again"], otp_app = "birdie", source = "hex", outer_checksum = "D225C0A3035FCD73A88402925A903AAD3567A1515C9EAE8364F11C17AD1805BB" },
{ name = "birl", version = "1.7.1", build_tools = ["gleam"], requirements = ["gleam_stdlib", "ranger"], otp_app = "birl", source = "hex", outer_checksum = "5C66647D62BCB11FE327E7A6024907C4A17954EF22865FE0940B54A852446D01" },
{ name = "filepath", version = "1.0.0", build_tools = ["gleam"], requirements = ["gleam_stdlib"], otp_app = "filepath", source = "hex", outer_checksum = "EFB6FF65C98B2A16378ABC3EE2B14124168C0CE5201553DE652E2644DCFDB594" },
{ name = "glance", version = "0.11.0", build_tools = ["gleam"], requirements = ["gleam_stdlib", "glexer"], otp_app = "glance", source = "hex", outer_checksum = "8F3314D27773B7C3B9FB58D8C02C634290422CE531988C0394FA0DF8676B964D" },
{ name = "gleam_community_ansi", version = "1.4.0", build_tools = ["gleam"], requirements = ["gleam_community_colour", "gleam_stdlib"], otp_app = "gleam_community_ansi", source = "hex", outer_checksum = "FE79E08BF97009729259B6357EC058315B6FBB916FAD1C2FF9355115FEB0D3A4" },
Expand All @@ -15,27 +15,28 @@ packages = [
{ name = "gleam_httpc", version = "2.2.0", build_tools = ["gleam"], requirements = ["gleam_http", "gleam_stdlib"], otp_app = "gleam_httpc", source = "hex", outer_checksum = "CF76C71002DEECF6DC5D9CA83D962728FAE166B57926BE442D827004D3C7DF1B" },
{ name = "gleam_json", version = "1.0.1", build_tools = ["gleam"], requirements = ["gleam_stdlib", "thoas"], otp_app = "gleam_json", source = "hex", outer_checksum = "9063D14D25406326C0255BDA0021541E797D8A7A12573D849462CAFED459F6EB" },
{ name = "gleam_otp", version = "0.10.0", build_tools = ["gleam"], requirements = ["gleam_erlang", "gleam_stdlib"], otp_app = "gleam_otp", source = "hex", outer_checksum = "0B04FE915ACECE539B317F9652CAADBBC0F000184D586AAAF2D94C100945D72B" },
{ name = "gleam_stdlib", version = "0.37.0", build_tools = ["gleam"], requirements = [], otp_app = "gleam_stdlib", source = "hex", outer_checksum = "5398BD6C2ABA17338F676F42F404B9B7BABE1C8DC7380031ACB05BBE1BCF3742" },
{ name = "gleam_stdlib", version = "0.39.0", build_tools = ["gleam"], requirements = [], otp_app = "gleam_stdlib", source = "hex", outer_checksum = "2D7DE885A6EA7F1D5015D1698920C9BAF7241102836CE0C3837A4F160128A9C4" },
{ name = "glearray", version = "0.2.2", build_tools = ["gleam"], requirements = ["gleam_stdlib"], otp_app = "glearray", source = "hex", outer_checksum = "9C207E05F38D724F464FA921378DB3ABC2B0A2F5821116D8BC8B2CACC68930D5" },
{ name = "gleeunit", version = "1.1.2", build_tools = ["gleam"], requirements = ["gleam_stdlib"], otp_app = "gleeunit", source = "hex", outer_checksum = "72CDC3D3F719478F26C4E2C5FED3E657AC81EC14A47D2D2DEBB8693CA3220C3B" },
{ name = "gleeunit", version = "1.2.0", build_tools = ["gleam"], requirements = ["gleam_stdlib"], otp_app = "gleeunit", source = "hex", outer_checksum = "F7A7228925D3EE7D0813C922E062BFD6D7E9310F0BEE585D3A42F3307E3CFD13" },
{ name = "glexer", version = "1.0.1", build_tools = ["gleam"], requirements = ["gleam_stdlib"], otp_app = "glexer", source = "hex", outer_checksum = "BD477AD657C2B637FEF75F2405FAEFFA533F277A74EF1A5E17B55B1178C228FB" },
{ name = "glisten", version = "2.0.0", build_tools = ["gleam"], requirements = ["gleam_erlang", "gleam_otp", "gleam_stdlib"], otp_app = "glisten", source = "hex", outer_checksum = "CF3A9383E9BA4A8CBAF2F7B799716290D02F2AC34E7A77556B49376B662B9314" },
{ name = "gramps", version = "2.0.1", build_tools = ["gleam"], requirements = ["gleam_crypto", "gleam_erlang", "gleam_http", "gleam_stdlib"], otp_app = "gramps", source = "hex", outer_checksum = "FBB7EA641C8A1EF02C0E938B6045A1360B925E5E65BAD0E228C4AEF6C6933722" },
{ name = "gramps", version = "2.0.3", build_tools = ["gleam"], requirements = ["gleam_crypto", "gleam_erlang", "gleam_http", "gleam_stdlib"], otp_app = "gramps", source = "hex", outer_checksum = "3CCAA6E081225180D95C79679D383BBF51C8D1FDC1B84DA1DA444F628C373793" },
{ name = "hpack_erl", version = "0.3.0", build_tools = ["rebar3"], requirements = [], otp_app = "hpack", source = "hex", outer_checksum = "D6137D7079169D8C485C6962DFE261AF5B9EF60FBC557344511C1E65E3D95FB0" },
{ name = "justin", version = "1.0.0", build_tools = ["gleam"], requirements = ["gleam_stdlib"], source = "local", path = "vendor/justin" },
{ name = "logging", version = "1.2.0", build_tools = ["gleam"], requirements = ["gleam_stdlib"], otp_app = "logging", source = "hex", outer_checksum = "FCB111401BDB4703A440A94FF8CC7DA521112269C065F219C2766998333E7738" },
{ name = "justin", version = "1.0.1", build_tools = ["gleam"], requirements = ["gleam_stdlib"], otp_app = "justin", source = "hex", outer_checksum = "7FA0C6DB78640C6DC5FBFD59BF3456009F3F8B485BF6825E97E1EB44E9A1E2CD" },
{ name = "justin_fork", version = "1.0.0", build_tools = ["gleam"], requirements = ["gleam_stdlib"], source = "local", path = "vendor/justin_fork" },
{ name = "logging", version = "1.3.0", build_tools = ["gleam"], requirements = ["gleam_stdlib"], otp_app = "logging", source = "hex", outer_checksum = "1098FBF10B54B44C2C7FDF0B01C1253CAFACDACABEFB4B0D027803246753E06D" },
{ name = "mist", version = "1.2.0", build_tools = ["gleam"], requirements = ["birl", "gleam_erlang", "gleam_http", "gleam_otp", "gleam_stdlib", "glisten", "gramps", "hpack_erl", "logging"], otp_app = "mist", source = "hex", outer_checksum = "109B4D64E68C104CC23BB3CC5441ECD479DD7444889DA01113B75C6AF0F0E17B" },
{ name = "ranger", version = "1.2.0", build_tools = ["gleam"], requirements = ["gleam_stdlib"], otp_app = "ranger", source = "hex", outer_checksum = "1566C272B1D141B3BBA38B25CB761EF56E312E79EC0E2DFD4D3C19FB0CC1F98C" },
{ name = "rank", version = "1.0.0", build_tools = ["gleam"], requirements = ["gleam_stdlib"], otp_app = "rank", source = "hex", outer_checksum = "5660E361F0E49CBB714CC57CC4C89C63415D8986F05B2DA0C719D5642FAD91C9" },
{ name = "repeatedly", version = "2.1.1", build_tools = ["gleam"], requirements = [], otp_app = "repeatedly", source = "hex", outer_checksum = "38808C3EC382B0CD981336D5879C24ECB37FCB9C1D1BD128F7A80B0F74404D79" },
{ name = "simplifile", version = "1.7.0", build_tools = ["gleam"], requirements = ["filepath", "gleam_stdlib"], otp_app = "simplifile", source = "hex", outer_checksum = "1D5DFA3A2F9319EC85825F6ED88B8E449F381B0D55A62F5E61424E748E7DDEB0" },
{ name = "simplifile", version = "2.0.1", build_tools = ["gleam"], requirements = ["filepath", "gleam_stdlib"], otp_app = "simplifile", source = "hex", outer_checksum = "5FFEBD0CAB39BDD343C3E1CCA6438B2848847DC170BA2386DF9D7064F34DF000" },
{ name = "spinner", version = "1.1.0", build_tools = ["gleam"], requirements = ["gleam_community_ansi", "gleam_erlang", "gleam_stdlib", "glearray", "repeatedly"], otp_app = "spinner", source = "hex", outer_checksum = "200BA3D4A04D468898E63C0D316E23F526E02514BC46454091975CB5BAE41E8F" },
{ name = "thoas", version = "1.2.1", build_tools = ["rebar3"], requirements = [], otp_app = "thoas", source = "hex", outer_checksum = "E38697EDFFD6E91BD12CEA41B155115282630075C2A727E7A6B2947F5408B86A" },
{ name = "trie_again", version = "1.1.2", build_tools = ["gleam"], requirements = ["gleam_stdlib"], otp_app = "trie_again", source = "hex", outer_checksum = "5B19176F52B1BD98831B57FDC97BD1F88C8A403D6D8C63471407E78598E27184" },
]

[requirements]
birdie = { version = ">= 1.1.4 and < 2.0.0" }
birdie = { version = ">= 1.1.8 and < 2.0.0" }
filepath = { version = ">= 1.0.0 and < 2.0.0" }
gleam_community_ansi = { version = ">= 1.4.0 and < 2.0.0" }
gleam_erlang = { version = ">= 0.25.0 and < 1.0.0" }
Expand All @@ -45,7 +46,7 @@ gleam_json = { version = ">= 1.0.0 and < 2.0.0" }
gleam_otp = { version = ">= 0.10.0 and < 1.0.0" }
gleam_stdlib = { version = ">= 0.34.0 and < 2.0.0" }
gleeunit = { version = ">= 1.0.0 and < 2.0.0" }
justin = { path = "./vendor/justin" }
mist = { version = ">= 1.2.0 and < 2.0.0"}
simplifile = { version = ">= 1.7.0 and < 2.0.0" }
justin_fork = { path = "./vendor/justin_fork" }
mist = { version = ">= 1.2.0 and < 2.0.0" }
simplifile = { version = ">= 2.0.1 and < 3.0.0" }
spinner = { version = ">= 1.1.0 and < 2.0.0" }
4 changes: 2 additions & 2 deletions src/browser_install.gleam
Original file line number Diff line number Diff line change
Expand Up @@ -449,7 +449,7 @@ fn unzip(from: String, to: String) {

let was_extracted =
list.map(installation_dir_entries, fn(i) {
file.verify_is_directory(path.join(to, i))
file.is_directory(path.join(to, i))
})
|> list.any(fn(check) {
case check {
Expand All @@ -473,7 +473,7 @@ You might run into permission issues when attempting to run the installed binary
|> result.replace_error(Nil),
)
list.each(installation_files, fn(i) {
case file.verify_is_file(i) {
case file.is_file(i) {
Ok(True) -> {
let _ = set_executable(i)
Nil
Expand Down
4 changes: 2 additions & 2 deletions src/chrobot.gleam
Original file line number Diff line number Diff line change
Expand Up @@ -260,7 +260,7 @@ pub fn pdf(page: Page) -> Result(EncodedFile, chrome.RequestError) {
Ok(EncodedFile(data: response.data, extension: "pdf"))
}

/// Write an file returned from [`screenshot`](#screenshot) or [`pdf`](#pdf) to a file.
/// Write a file returned from [`screenshot`](#screenshot) or [`pdf`](#pdf) to a file.
/// File path should not include the file extension, it will be appended automatically!
/// Will return a FileError from the `simplifile` package if not successfull
pub fn to_file(
Expand All @@ -269,7 +269,7 @@ pub fn to_file(
) -> Result(Nil, file.FileError) {
let res =
bit_array.base64_decode(input.data)
|> result.replace_error(file.Unknown)
|> result.replace_error(file.Unknown("Could not decode base64 string"))

use binary <- result.try(res)
file.write_bits(to: path <> "." <> input.extension, bits: binary)
Expand Down
12 changes: 6 additions & 6 deletions src/chrome.gleam
Original file line number Diff line number Diff line change
Expand Up @@ -429,7 +429,7 @@ pub fn get_local_chrome_path() {

@internal
pub fn get_local_chrome_path_at(base_dir: String) {
case file.verify_is_directory(base_dir) {
case file.is_directory(base_dir) {
Ok(True) -> {
let files_res =
result.replace_error(file.get_files(base_dir), CouldNotFindExecutable)
Expand Down Expand Up @@ -536,10 +536,10 @@ fn map_non_data_port_msg(msg: d.Dynamic) -> Message {
/// Processes an input string and returns a list of complete packets
/// as well as the updated buffer containing overflow data
@internal
pub fn process_port_message(input: String, buffer: sb.StringBuilder) -> #(
List(String),
sb.StringBuilder,
) {
pub fn process_port_message(
input: String,
buffer: sb.StringBuilder,
) -> #(List(String), sb.StringBuilder) {
case string.split(input, "\u{0000}") {
[unterminated_msg] -> #([], sb.append(buffer, unterminated_msg))
// Match on this case directly even though it would be handled by the next case
Expand Down Expand Up @@ -1013,7 +1013,7 @@ fn get_first_existing_path(paths: List(String)) -> Result(String, LaunchError) {
let existing_paths =
paths
|> list.filter(fn(current) {
case file.verify_is_file(current) {
case file.is_file(current) {
Ok(res) -> res
Error(_) -> False
}
Expand Down
12 changes: 9 additions & 3 deletions src/protocol/debugger.gleam
Original file line number Diff line number Diff line change
Expand Up @@ -742,7 +742,9 @@ pub type ContinueToLocationTargetCallFrames {
}

@internal
pub fn encode__continue_to_location_target_call_frames(value__: ContinueToLocationTargetCallFrames) {
pub fn encode__continue_to_location_target_call_frames(
value__: ContinueToLocationTargetCallFrames,
) {
case value__ {
ContinueToLocationTargetCallFramesAny -> "any"
ContinueToLocationTargetCallFramesCurrent -> "current"
Expand Down Expand Up @@ -1094,7 +1096,9 @@ pub type SetInstrumentationBreakpointInstrumentation {
}

@internal
pub fn encode__set_instrumentation_breakpoint_instrumentation(value__: SetInstrumentationBreakpointInstrumentation) {
pub fn encode__set_instrumentation_breakpoint_instrumentation(
value__: SetInstrumentationBreakpointInstrumentation,
) {
case value__ {
SetInstrumentationBreakpointInstrumentationBeforeScriptExecution ->
"beforeScriptExecution"
Expand All @@ -1105,7 +1109,9 @@ pub fn encode__set_instrumentation_breakpoint_instrumentation(value__: SetInstru
}

@internal
pub fn decode__set_instrumentation_breakpoint_instrumentation(value__: dynamic.Dynamic) {
pub fn decode__set_instrumentation_breakpoint_instrumentation(
value__: dynamic.Dynamic,
) {
case dynamic.string(value__) {
Ok("beforeScriptExecution") ->
Ok(SetInstrumentationBreakpointInstrumentationBeforeScriptExecution)
Expand Down
4 changes: 3 additions & 1 deletion src/protocol/emulation.gleam
Original file line number Diff line number Diff line change
Expand Up @@ -382,7 +382,9 @@ pub type SetEmulatedVisionDeficiencyType {
}

@internal
pub fn encode__set_emulated_vision_deficiency_type(value__: SetEmulatedVisionDeficiencyType) {
pub fn encode__set_emulated_vision_deficiency_type(
value__: SetEmulatedVisionDeficiencyType,
) {
case value__ {
SetEmulatedVisionDeficiencyTypeNone -> "none"
SetEmulatedVisionDeficiencyTypeBlurredVision -> "blurredVision"
Expand Down
4 changes: 3 additions & 1 deletion src/protocol/fetch.gleam
Original file line number Diff line number Diff line change
Expand Up @@ -241,7 +241,9 @@ pub type AuthChallengeResponseResponse {
}

@internal
pub fn encode__auth_challenge_response_response(value__: AuthChallengeResponseResponse) {
pub fn encode__auth_challenge_response_response(
value__: AuthChallengeResponseResponse,
) {
case value__ {
AuthChallengeResponseResponseDefault -> "Default"
AuthChallengeResponseResponseCancelAuth -> "CancelAuth"
Expand Down
4 changes: 3 additions & 1 deletion src/protocol/input.gleam
Original file line number Diff line number Diff line change
Expand Up @@ -425,7 +425,9 @@ pub type DispatchMouseEventPointerType {
}

@internal
pub fn encode__dispatch_mouse_event_pointer_type(value__: DispatchMouseEventPointerType) {
pub fn encode__dispatch_mouse_event_pointer_type(
value__: DispatchMouseEventPointerType,
) {
case value__ {
DispatchMouseEventPointerTypeMouse -> "mouse"
DispatchMouseEventPointerTypePen -> "pen"
Expand Down
8 changes: 6 additions & 2 deletions src/protocol/network.gleam
Original file line number Diff line number Diff line change
Expand Up @@ -906,7 +906,9 @@ pub type CertificateTransparencyCompliance {
}

@internal
pub fn encode__certificate_transparency_compliance(value__: CertificateTransparencyCompliance) {
pub fn encode__certificate_transparency_compliance(
value__: CertificateTransparencyCompliance,
) {
case value__ {
CertificateTransparencyComplianceUnknown -> "unknown"
CertificateTransparencyComplianceNotCompliant -> "not-compliant"
Expand Down Expand Up @@ -1201,7 +1203,9 @@ pub type ServiceWorkerResponseSource {
}

@internal
pub fn encode__service_worker_response_source(value__: ServiceWorkerResponseSource) {
pub fn encode__service_worker_response_source(
value__: ServiceWorkerResponseSource,
) {
case value__ {
ServiceWorkerResponseSourceCacheStorage -> "cache-storage"
ServiceWorkerResponseSourceHttpCache -> "http-cache"
Expand Down
4 changes: 3 additions & 1 deletion src/protocol/page.gleam
Original file line number Diff line number Diff line change
Expand Up @@ -505,7 +505,9 @@ pub type AddScriptToEvaluateOnNewDocumentResponse {
}

@internal
pub fn decode__add_script_to_evaluate_on_new_document_response(value__: dynamic.Dynamic) {
pub fn decode__add_script_to_evaluate_on_new_document_response(
value__: dynamic.Dynamic,
) {
use identifier <- result.try(dynamic.field(
"identifier",
decode__script_identifier,
Expand Down
8 changes: 6 additions & 2 deletions src/protocol/runtime.gleam
Original file line number Diff line number Diff line change
Expand Up @@ -63,7 +63,9 @@ pub type SerializationOptionsSerialization {
}

@internal
pub fn encode__serialization_options_serialization(value__: SerializationOptionsSerialization) {
pub fn encode__serialization_options_serialization(
value__: SerializationOptionsSerialization,
) {
case value__ {
SerializationOptionsSerializationDeep -> "deep"
SerializationOptionsSerializationJson -> "json"
Expand Down Expand Up @@ -772,7 +774,9 @@ pub type ExecutionContextDescription {
}

@internal
pub fn encode__execution_context_description(value__: ExecutionContextDescription) {
pub fn encode__execution_context_description(
value__: ExecutionContextDescription,
) {
json.object(
[
#("id", encode__execution_context_id(value__.id)),
Expand Down
6 changes: 3 additions & 3 deletions test/chrobot_test.gleam
Original file line number Diff line number Diff line change
Expand Up @@ -10,14 +10,14 @@ import gleam/result
import gleam/string
import gleeunit
import gleeunit/should
import test_server
import mock_server
import test_utils

/// TEST SETUP
/// The tests will only run if a browser path is set in the environment variable `CHROBOT_TEST_BROWSER_PATH`.
pub fn main() {
let test_browser_path = test_utils.try_get_browser_path()
test_server.start()
mock_server.start()

case test_browser_path {
Ok(browser_path) -> {
Expand Down Expand Up @@ -56,7 +56,7 @@ pub fn main() {

pub fn open_test() {
let browser = test_utils.get_browser_instance()
let test_url = test_server.get_url()
let test_url = mock_server.get_url()
use <- chrobot.defer_quit(browser)

let page =
Expand Down
2 changes: 1 addition & 1 deletion test/codegen/generate_bindings.gleam
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,7 @@ import gleam/regex
import gleam/result
import gleam/string
import gleam/string_builder as sb
import justin.{pascal_case, snake_case}
import justin_fork.{pascal_case, snake_case}
import simplifile as file

const root_module_comment = "
Expand Down
2 changes: 1 addition & 1 deletion test/test_server.gleam → test/mock_server.gleam
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
//// The test server listens on localhost and returns some fixed data,
//// The mock server listens on localhost and returns some fixed data,
//// it can be used in tests, to avoid the need to request an external website

import chrobot/internal/utils
Expand Down
Loading

0 comments on commit 1f82e77

Please sign in to comment.