test: ensure startup message is correct

This commit is contained in:
Khaïs COLIN 2025-05-03 19:00:41 +02:00
parent 6910407ad2
commit 7fbaec8743
7 changed files with 200 additions and 7 deletions

123
Cargo.lock generated
View file

@ -2,6 +2,129 @@
# It is not intended for manual editing. # It is not intended for manual editing.
version = 4 version = 4
[[package]]
name = "console"
version = "0.15.11"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "054ccb5b10f9f2cbf51eb355ca1d05c2d279ce1804688d0db74b4733a5aeafd8"
dependencies = [
"encode_unicode",
"libc",
"once_cell",
"windows-sys",
]
[[package]]
name = "encode_unicode"
version = "1.0.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "34aa73646ffb006b8f5147f3dc182bd4bcb190227ce861fc4a4844bf8e3cb2c0"
[[package]]
name = "insta"
version = "1.43.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "154934ea70c58054b556dd430b99a98c2a7ff5309ac9891597e339b5c28f4371"
dependencies = [
"console",
"once_cell",
"similar",
]
[[package]]
name = "libc"
version = "0.2.172"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "d750af042f7ef4f724306de029d18836c26c1765a54a6a3f094cbd23a7267ffa"
[[package]]
name = "once_cell"
version = "1.21.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "42f5e15c9953c5e4ccceeb2e7382a716482c34515315f7b03532b8b4e8393d2d"
[[package]] [[package]]
name = "osdb" name = "osdb"
version = "0.1.0" version = "0.1.0"
dependencies = [
"insta",
]
[[package]]
name = "similar"
version = "2.7.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "bbbb5d9659141646ae647b42fe094daf6c6192d1620870b449d9557f748b2daa"
[[package]]
name = "windows-sys"
version = "0.59.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "1e38bc4d79ed67fd075bcc251a1c39b32a1776bbe92e5bef1f0bf1f8c531853b"
dependencies = [
"windows-targets",
]
[[package]]
name = "windows-targets"
version = "0.52.6"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "9b724f72796e036ab90c1021d4780d4d3d648aca59e491e6b98e725b84e99973"
dependencies = [
"windows_aarch64_gnullvm",
"windows_aarch64_msvc",
"windows_i686_gnu",
"windows_i686_gnullvm",
"windows_i686_msvc",
"windows_x86_64_gnu",
"windows_x86_64_gnullvm",
"windows_x86_64_msvc",
]
[[package]]
name = "windows_aarch64_gnullvm"
version = "0.52.6"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "32a4622180e7a0ec044bb555404c800bc9fd9ec262ec147edd5989ccd0c02cd3"
[[package]]
name = "windows_aarch64_msvc"
version = "0.52.6"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "09ec2a7bb152e2252b53fa7803150007879548bc709c039df7627cabbd05d469"
[[package]]
name = "windows_i686_gnu"
version = "0.52.6"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "8e9b5ad5ab802e97eb8e295ac6720e509ee4c243f69d781394014ebfe8bbfa0b"
[[package]]
name = "windows_i686_gnullvm"
version = "0.52.6"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "0eee52d38c090b3caa76c563b86c3a4bd71ef1a819287c19d586d7334ae8ed66"
[[package]]
name = "windows_i686_msvc"
version = "0.52.6"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "240948bc05c5e7c6dabba28bf89d89ffce3e303022809e73deaefe4f6ec56c66"
[[package]]
name = "windows_x86_64_gnu"
version = "0.52.6"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "147a5c80aabfbf0c7d901cb5895d1de30ef2907eb21fbbab29ca94c5b08b1a78"
[[package]]
name = "windows_x86_64_gnullvm"
version = "0.52.6"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "24d5b23dc417412679681396f2b49f3de8c1473deb516bd34410872eff51ed0d"
[[package]]
name = "windows_x86_64_msvc"
version = "0.52.6"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "589f6da84c646204747d1270a2a5661ea66ed1cced2631d546fdfb155959f9ec"

View file

@ -5,3 +5,6 @@ edition = "2024"
authors = ["Khaïs COLIN"] authors = ["Khaïs COLIN"]
[dependencies] [dependencies]
[dev-dependencies]
insta = "1.43.1"

View file

@ -27,6 +27,7 @@
pkgs.clippy pkgs.clippy
pkgs.bacon pkgs.bacon
pkgs.cargo-semver-checks pkgs.cargo-semver-checks
pkgs.cargo-insta
]; ];
}; };
packages.default = pkgs.rustPlatform.buildRustPackage { packages.default = pkgs.rustPlatform.buildRustPackage {

View file

@ -1,14 +1,64 @@
#+title: Notes #+title: Notes
* show errors with ariadne * TODO show errors with ariadne
:PROPERTIES: :PROPERTIES:
:EFFORT: 10min :EFFORT: 10min
:END: :END:
** errors should have a generic show() function ** [X] errors should have a generic show() function
:PROPERTIES: :PROPERTIES:
:EFFORT: 10min :EFFORT: 10min
:END: :END:
:LOGBOOK: :LOGBOOK:
CLOCK: [2025-05-03 sam. 18:40]--[2025-05-03 sam. 18:46] => 0:06 CLOCK: [2025-05-03 sam. 18:40]--[2025-05-03 sam. 18:46] => 0:06
:END: :END:
** OSDBError::display() should take a filename and display it alongside the error ** TODO OSDBError::display() should take a filename and display it alongside the error
* TODO snapshot testing
** DONE Find the snapshot testing library
:PROPERTIES:
:EFFORT: 10min
:END:
:LOGBOOK:
CLOCK: [2025-05-03 sam. 18:48]--[2025-05-03 sam. 18:49] => 0:01
:END:
** DONE document myself on insta, the snapshot testing library
:PROPERTIES:
:EFFORT: 10min
:END:
:LOGBOOK:
CLOCK: [2025-05-03 sam. 18:49]--[2025-05-03 sam. 18:57] => 0:08
:END:
** TODO insta test startup message
:PROPERTIES:
:EFFORT: 10min
:END:
:LOGBOOK:
CLOCK: [2025-05-03 sam. 19:00]
:END:
** TODO insta test exit message
:PROPERTIES:
:EFFORT: 10min
:END:
** TODO insta test insert
:PROPERTIES:
:EFFORT: 10min
:END:
** TODO insta test select
:PROPERTIES:
:EFFORT: 10min
:END:
** TODO insta test .exit
:PROPERTIES:
:EFFORT: 10min
:END:
** TODO insta test wrong statement
:PROPERTIES:
:EFFORT: 10min
:END:
** TODO insta test wrong meta-command
:PROPERTIES:
:EFFORT: 10min
:END:

View file

@ -1,8 +1,18 @@
pub fn startup_msg() { #[cfg(test)]
use insta::assert_snapshot;
pub fn startup_msg() -> String {
let name = env!("CARGO_PKG_NAME"); let name = env!("CARGO_PKG_NAME");
let version = env!("CARGO_PKG_VERSION"); let version = env!("CARGO_PKG_VERSION");
let authors = env!("CARGO_PKG_AUTHORS"); let authors = env!("CARGO_PKG_AUTHORS");
println!("{name} v{version} started.",); format!(
println!("Copyright 2025 {authors}. All rights reserved.") "{name} v{version} started.\n\
Copyright 2025 {authors}. All rights reserved."
)
}
#[test]
fn test_startup_msg() {
assert_snapshot!(startup_msg())
} }

View file

@ -4,7 +4,7 @@ use osdb::command::Command;
use osdb::error_display::OSDBError as _; use osdb::error_display::OSDBError as _;
fn main() { fn main() {
startup_msg(); println!("{}", startup_msg());
while let Some(input) = read_input() { while let Some(input) = read_input() {
match input.parse::<Command>() { match input.parse::<Command>() {
Ok(cmd) => { Ok(cmd) => {

View file

@ -0,0 +1,6 @@
---
source: src/branding.rs
expression: startup_msg()
---
osdb v0.1.0 started.
Copyright 2025 Khaïs COLIN. All rights reserved.