mirror of
https://github.com/sigoden/dufs.git
synced 2026-04-09 00:59:02 +03:00
refactor: split css/js from index.html (#68)
This commit is contained in:
61
tests/assets.rs
Normal file
61
tests/assets.rs
Normal file
@@ -0,0 +1,61 @@
|
||||
mod fixtures;
|
||||
mod utils;
|
||||
|
||||
use fixtures::{server, Error, TestServer};
|
||||
use rstest::rstest;
|
||||
|
||||
#[rstest]
|
||||
fn assets(server: TestServer) -> Result<(), Error> {
|
||||
let ver = env!("CARGO_PKG_VERSION");
|
||||
let resp = reqwest::blocking::get(server.url())?;
|
||||
let index_js = format!("/__dufs_v{}_index.js", ver);
|
||||
let index_css = format!("/__dufs_v{}_index.css", ver);
|
||||
let favicon_ico = format!("/__dufs_v{}_favicon.ico", ver);
|
||||
let text = resp.text()?;
|
||||
assert!(text.contains(&format!(r#"href="{}""#, index_css)));
|
||||
assert!(text.contains(&format!(r#"href="{}""#, favicon_ico)));
|
||||
assert!(text.contains(&format!(r#"src="{}""#, index_js)));
|
||||
Ok(())
|
||||
}
|
||||
|
||||
#[rstest]
|
||||
fn asset_js(server: TestServer) -> Result<(), Error> {
|
||||
let url = format!(
|
||||
"{}__dufs_v{}_index.js",
|
||||
server.url(),
|
||||
env!("CARGO_PKG_VERSION")
|
||||
);
|
||||
let resp = reqwest::blocking::get(url)?;
|
||||
assert_eq!(resp.status(), 200);
|
||||
assert_eq!(
|
||||
resp.headers().get("content-type").unwrap(),
|
||||
"application/javascript"
|
||||
);
|
||||
Ok(())
|
||||
}
|
||||
|
||||
#[rstest]
|
||||
fn asset_css(server: TestServer) -> Result<(), Error> {
|
||||
let url = format!(
|
||||
"{}__dufs_v{}_index.css",
|
||||
server.url(),
|
||||
env!("CARGO_PKG_VERSION")
|
||||
);
|
||||
let resp = reqwest::blocking::get(url)?;
|
||||
assert_eq!(resp.status(), 200);
|
||||
assert_eq!(resp.headers().get("content-type").unwrap(), "text/css");
|
||||
Ok(())
|
||||
}
|
||||
|
||||
#[rstest]
|
||||
fn asset_ico(server: TestServer) -> Result<(), Error> {
|
||||
let url = format!(
|
||||
"{}__dufs_v{}_favicon.ico",
|
||||
server.url(),
|
||||
env!("CARGO_PKG_VERSION")
|
||||
);
|
||||
let resp = reqwest::blocking::get(url)?;
|
||||
assert_eq!(resp.status(), 200);
|
||||
assert_eq!(resp.headers().get("content-type").unwrap(), "image/x-icon");
|
||||
Ok(())
|
||||
}
|
||||
@@ -1,25 +0,0 @@
|
||||
mod fixtures;
|
||||
mod utils;
|
||||
|
||||
use fixtures::{server, Error, TestServer};
|
||||
use rstest::rstest;
|
||||
|
||||
#[rstest]
|
||||
fn default_favicon(server: TestServer) -> Result<(), Error> {
|
||||
let resp = reqwest::blocking::get(format!("{}favicon.ico", server.url()))?;
|
||||
assert_eq!(resp.status(), 200);
|
||||
assert_eq!(resp.headers().get("content-type").unwrap(), "image/x-icon");
|
||||
Ok(())
|
||||
}
|
||||
|
||||
#[rstest]
|
||||
fn exist_favicon(#[with(&["-A"])] server: TestServer) -> Result<(), Error> {
|
||||
let url = format!("{}favicon.ico", server.url());
|
||||
let data = b"abc";
|
||||
let resp = fetch!(b"PUT", &url).body(data.to_vec()).send()?;
|
||||
assert_eq!(resp.status(), 201);
|
||||
let resp = reqwest::blocking::get(url)?;
|
||||
assert_eq!(resp.status(), 200);
|
||||
assert_eq!(resp.bytes()?, data.to_vec());
|
||||
Ok(())
|
||||
}
|
||||
@@ -37,12 +37,8 @@ pub fn encode_uri(v: &str) -> String {
|
||||
|
||||
fn retrive_index_paths_impl(index: &str) -> Option<HashSet<String>> {
|
||||
let lines: Vec<&str> = index.lines().collect();
|
||||
let (i, _) = lines
|
||||
.iter()
|
||||
.enumerate()
|
||||
.find(|(_, v)| v.contains("const DATA"))?;
|
||||
let line = lines.get(i + 1)?;
|
||||
let value: Value = line.parse().ok()?;
|
||||
let line = lines.iter().find(|v| v.contains("DATA ="))?;
|
||||
let value: Value = line[7..].parse().ok()?;
|
||||
let paths = value
|
||||
.get("paths")?
|
||||
.as_array()?
|
||||
|
||||
Reference in New Issue
Block a user