Skip to content

Commit

Permalink
added E2E test to enable WASM module to work on 3 string inputs
Browse files Browse the repository at this point in the history
  • Loading branch information
shakyShane committed Nov 5, 2018
1 parent f5e637e commit a208bb5
Show file tree
Hide file tree
Showing 4 changed files with 83 additions and 8 deletions.
6 changes: 3 additions & 3 deletions rjs-parse/src/build_config.rs
Original file line number Diff line number Diff line change
Expand Up @@ -136,7 +136,7 @@ impl RequireJsBuildConfig {
/// children: []
/// urls: ["/"]
/// "#;
/// let rjx2 = rjx.with_bundle_config(bundle_config_str.into(), &vec![]);
/// let rjx2 = rjx.create_modules(&bundle_config_str.into(), &vec![]);
/// assert_eq!(rjx2.modules.expect("has modules"), vec![
/// BuildModule {
/// name: "requirejs/require".to_string(),
Expand All @@ -155,9 +155,9 @@ impl RequireJsBuildConfig {
/// ]);
/// ```
///
pub fn with_bundle_config(
pub fn create_modules(
mut self,
bundle_config: BundleConfig,
bundle_config: &BundleConfig,
req_log: &Vec<ModuleData>
) -> RequireJsBuildConfig {
self.modules = Some(modules::generate_modules(req_log, bundle_config));
Expand Down
7 changes: 3 additions & 4 deletions rjs-parse/src/modules.rs
Original file line number Diff line number Diff line change
Expand Up @@ -40,19 +40,18 @@ pub struct ModuleData {
///
pub fn generate_modules(
req_log: &Vec<ModuleData>,
config: impl Into<BundleConfig>,
config: &BundleConfig,
) -> Vec<BuildModule> {
let mut modules: Vec<BuildModule> = vec![BuildModule {
name: "requirejs/require".into(),
include: vec![],
exclude: vec![],
create: false,
}];
let conf = config.into();
collect(
&mut modules,
req_log,
&conf.bundles,
&config.bundles,
vec!["requirejs/require".into()],
);
modules.to_vec()
Expand Down Expand Up @@ -168,7 +167,7 @@ fn test_create_modules() {
"#.into();
let reqs: Vec<ModuleData> =
serde_json::from_str(include_str!("../test/fixtures/example-reqs.json")).unwrap();
let out = generate_modules(&reqs, c);
let out = generate_modules(&reqs, &c);

assert_eq!(
out[0],
Expand Down
76 changes: 76 additions & 0 deletions rjs-parse/tests/e2e.rs
Original file line number Diff line number Diff line change
@@ -0,0 +1,76 @@
extern crate rjs;
extern crate from_file;
extern crate serde_json;

use rjs::{RequireJsBuildConfig, RequireJsClientConfig, bundle_config};

#[test]
fn test_all_strings() {
let rjs_config = r#"
(function() {
var config = {
shim: {
backbone: ["jquery"]
}
}
})();
"#;
let bundle_config = r#"
{"bundles": [{"name": "main", "children": [], "urls": ["/"]}]}
"#;
let req_log = r#"
[
{
"url": "https://example.com/jquery",
"id": "jquery",
"referrer": "/"
}
]
"#;
let expected = r#"
{
"generateSourceMaps": true,
"inlineText": true,
"optimize": "uglify",
"deps": [],
"map": {},
"config": {},
"shim": {
"backbone": [
"jquery"
]
},
"paths": {},
"modules": [
{
"name": "requirejs/require",
"include": [],
"exclude": [],
"create": false
},
{
"name": "main",
"include": [
"jquery"
],
"exclude": [
"requirejs/require"
],
"create": true
}
]
}
"#;

let rjs_build = RequireJsBuildConfig::from_generated_string(rjs_config).expect("sup");
let config = bundle_config::BundleConfig::from_json_string(bundle_config).expect("bundle config parse");
let req_log: Vec<rjs::modules::ModuleData> = serde_json::from_str(req_log).expect("serde");

let next_build = rjs_build.create_modules(&config, &req_log);
let as_string = next_build.to_string().expect("must serialize");

let actual_as_value: serde_json::Value = serde_json::from_str(&as_string).expect("serde actual");
let expected_as_value: serde_json::Value = serde_json::from_str(&expected).expect("serde expected");

assert_eq!(actual_as_value, expected_as_value);
}
2 changes: 1 addition & 1 deletion src/lib/presets/m2/state.rs
Original file line number Diff line number Diff line change
Expand Up @@ -48,7 +48,7 @@ pub fn gather_state(
let mut c = client_config.paths.clone();
derived_build_config.paths = RequireJsBuildConfig::strip_paths(&c);

let derived_build_config = derived_build_config.with_bundle_config(bundle_config, &filtered);
let derived_build_config = derived_build_config.create_modules(&bundle_config, &filtered);

Ok(derived_build_config)
}
Expand Down

0 comments on commit a208bb5

Please sign in to comment.