Skip to content

Commit 4913dbe

Browse files
committed
fix tests
1 parent 2fdda08 commit 4913dbe

File tree

2 files changed

+44
-54
lines changed

2 files changed

+44
-54
lines changed

plugins/updater/src/updater.rs

Lines changed: 27 additions & 37 deletions
Original file line numberDiff line numberDiff line change
@@ -102,47 +102,26 @@ pub struct RemoteRelease {
102102

103103
impl RemoteRelease {
104104
/// The release's download URL for the given target.
105-
pub fn download_url(
106-
&self,
107-
fallback_target: &str,
108-
installer: Option<Installer>,
109-
) -> Result<&Url> {
110-
let target = installer
111-
.map(|installer| format!("{fallback_target}-{}", installer.suffix()))
112-
.unwrap_or("".to_string());
105+
pub fn download_url(&self, target: &str) -> Result<&Url> {
113106
match self.data {
114107
RemoteReleaseInner::Dynamic(ref platform) => Ok(&platform.url),
115-
RemoteReleaseInner::Static { ref platforms } => platforms.get(&target).map_or_else(
116-
|| {
117-
platforms.get(fallback_target).map_or(
118-
Err(Error::TargetsNotFound(
119-
target.to_string(),
120-
fallback_target.to_string(),
121-
)),
122-
|p| Ok(&p.url),
123-
)
124-
},
125-
|p| Ok(&p.url),
126-
),
108+
RemoteReleaseInner::Static { ref platforms } => platforms
109+
.get(target)
110+
.map_or(Err(Error::TargetNotFound(target.to_string())), |p| {
111+
Ok(&p.url)
112+
}),
127113
}
128114
}
129115

130116
/// The release's signature for the given target.
131-
pub fn signature(&self, target: &str, installer: Option<Installer>) -> Result<&String> {
132-
let fallback_target = installer.map(|installer| format!("{target}-{}", installer.suffix()));
133-
117+
pub fn signature(&self, target: &str) -> Result<&String> {
134118
match self.data {
135119
RemoteReleaseInner::Dynamic(ref platform) => Ok(&platform.signature),
136-
RemoteReleaseInner::Static { ref platforms } => platforms.get(target).map_or_else(
137-
|| match fallback_target {
138-
Some(fallback) => platforms.get(&fallback).map_or(
139-
Err(Error::TargetsNotFound(target.to_string(), fallback)),
140-
|p| Ok(&p.signature),
141-
),
142-
None => Err(Error::TargetNotFound(target.to_string())),
143-
},
144-
|p| Ok(&p.signature),
145-
),
120+
RemoteReleaseInner::Static { ref platforms } => platforms
121+
.get(target)
122+
.map_or(Err(Error::TargetNotFound(target.to_string())), |platform| {
123+
Ok(&platform.signature)
124+
}),
146125
}
147126
}
148127
}
@@ -531,7 +510,20 @@ impl Updater {
531510
None => release.version > self.current_version,
532511
};
533512

513+
let mut download_url = release.download_url(&self.json_target);
514+
let mut signature = release.signature(&self.json_target);
515+
534516
let installer = self.get_updater_installer();
517+
if installer.is_none() && (download_url.is_err() || signature.is_err()) {
518+
return Err(Error::TargetNotFound(self.json_target.clone()));
519+
}
520+
521+
if let Some(installer) = installer {
522+
let target = &format!("{}-{}", &self.json_target, installer.suffix());
523+
download_url = release.download_url(target).or(download_url.or(Err(Error::TargetsNotFound(self.json_target.clone(), target.clone()))));
524+
signature = release.signature(target).or(signature.or(Err(Error::TargetsNotFound(self.json_target.clone(), target.clone()))));
525+
}
526+
535527

536528
let update = if should_update {
537529
Some(Update {
@@ -544,11 +536,9 @@ impl Updater {
544536
extract_path: self.extract_path.clone(),
545537
version: release.version.to_string(),
546538
date: release.pub_date,
547-
download_url: release
548-
.download_url(&self.json_target, installer)?
549-
.to_owned(),
539+
download_url: download_url?.to_owned(),
550540
body: release.notes.clone(),
551-
signature: release.signature(&self.json_target, installer)?.to_owned(),
541+
signature: signature?.to_owned(),
552542
installer,
553543
raw_json: raw_json.unwrap(),
554544
timeout: None,

plugins/updater/tests/app-updater/tests/update.rs

Lines changed: 17 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -49,7 +49,7 @@ struct Update {
4949
fn build_app(cwd: &Path, config: &Config, bundle_updater: bool, target: BundleTarget) {
5050
let mut command = Command::new("cargo");
5151
command
52-
.args(["tauri", "build", "--debug", "--verbose"])
52+
.args(["tauri", "build", "--verbose"])
5353
.arg("--config")
5454
.arg(serde_json::to_string(config).unwrap())
5555
.env("TAURI_SIGNING_PRIVATE_KEY", UPDATER_PRIVATE_KEY)
@@ -144,7 +144,7 @@ fn test_cases(
144144
(
145145
BundleTarget::AppImage,
146146
root_dir.join(format!(
147-
"target/debug/bundle/appimage/app-updater_{version}_amd64.AppImage"
147+
"target/release/bundle/appimage/app-updater_{version}_amd64.AppImage"
148148
)),
149149
Some(target.clone()),
150150
vec![UPDATED_EXIT_CODE, UP_TO_DATE_EXIT_CODE],
@@ -153,7 +153,7 @@ fn test_cases(
153153
(
154154
BundleTarget::AppImage,
155155
root_dir.join(format!(
156-
"target/debug/bundle/appimage/app-updater_{version}_amd64.AppImage"
156+
"target/release/bundle/appimage/app-updater_{version}_amd64.AppImage"
157157
)),
158158
Some(format!("{target}-{}", BundleTarget::AppImage.name())),
159159
vec![UPDATED_EXIT_CODE, UP_TO_DATE_EXIT_CODE],
@@ -162,7 +162,7 @@ fn test_cases(
162162
(
163163
BundleTarget::AppImage,
164164
root_dir.join(format!(
165-
"target/debug/bundle/appimage/app-updater_{version}_amd64.AppImage"
165+
"target/release/bundle/appimage/app-updater_{version}_amd64.AppImage"
166166
)),
167167
None,
168168
vec![ERROR_EXIT_CODE],
@@ -179,21 +179,21 @@ fn test_cases(
179179
vec![
180180
(
181181
BundleTarget::App,
182-
root_dir.join("target/debug/bundle/macos/app-updater.app"),
182+
root_dir.join("target/release/bundle/macos/app-updater.app"),
183183
Some(target.clone()),
184184
vec![UPDATED_EXIT_CODE, UP_TO_DATE_EXIT_CODE],
185185
),
186186
// update with installer
187187
(
188188
BundleTarget::App,
189-
root_dir.join("target/debug/bundle/macos/app-updater.app"),
189+
root_dir.join("target/release/bundle/macos/app-updater.app"),
190190
Some(format!("{target}-{}", BundleTarget::App.name())),
191191
vec![UPDATED_EXIT_CODE, UP_TO_DATE_EXIT_CODE],
192192
),
193193
// no update
194194
(
195195
BundleTarget::App,
196-
root_dir.join("target/debug/bundle/macos/app-updater.app"),
196+
root_dir.join("target/release/bundle/macos/app-updater.app"),
197197
None,
198198
vec![ERROR_EXIT_CODE],
199199
),
@@ -208,13 +208,13 @@ fn bundle_paths(
208208
) -> Vec<(BundleTarget, PathBuf)> {
209209
vec![(
210210
BundleTarget::App,
211-
root_dir.join("target/debug/bundle/ios/app-updater.ipa"),
211+
root_dir.join("target/release/bundle/ios/app-updater.ipa"),
212212
)]
213213
}
214214

215215
#[cfg(target_os = "android")]
216216
fn bundle_path(root_dir: &Path, _version: &str, v1compatible: bool) -> PathBuf {
217-
root_dir.join("target/debug/bundle/android/app-updater.apk")
217+
root_dir.join("target/release/bundle/android/app-updater.apk")
218218
}
219219

220220
#[cfg(windows)]
@@ -227,47 +227,47 @@ fn test_cases(
227227
(
228228
BundleTarget::Nsis,
229229
root_dir.join(format!(
230-
"target/debug/bundle/nsis/app-updater_{version}_x64-setup.exe"
230+
"target/release/bundle/nsis/app-updater_{version}_x64-setup.exe"
231231
)),
232232
Some(target.clone()),
233233
vec![UPDATED_EXIT_CODE],
234234
),
235235
(
236236
BundleTarget::Nsis,
237237
root_dir.join(format!(
238-
"target/debug/bundle/nsis/app-updater_{version}_x64-setup.exe"
238+
"target/release/bundle/nsis/app-updater_{version}_x64-setup.exe"
239239
)),
240240
Some(format!("{target}-{}", BundleTarget::Nsis.name())),
241241
vec![UPDATED_EXIT_CODE],
242242
),
243243
(
244244
BundleTarget::Nsis,
245245
root_dir.join(format!(
246-
"target/debug/bundle/nsis/app-updater_{version}_x64-setup.exe"
246+
"target/release/bundle/nsis/app-updater_{version}_x64-setup.exe"
247247
)),
248248
None,
249249
vec![ERROR_EXIT_CODE],
250250
),
251251
(
252252
BundleTarget::Msi,
253253
root_dir.join(format!(
254-
"target/debug/bundle/msi/app-updater_{version}_x64_en-US.msi"
254+
"target/release/bundle/msi/app-updater_{version}_x64_en-US.msi"
255255
)),
256256
Some(target.clone()),
257257
vec![UPDATED_EXIT_CODE],
258258
),
259259
(
260260
BundleTarget::Msi,
261261
root_dir.join(format!(
262-
"target/debug/bundle/msi/app-updater_{version}_x64_en-US.msi"
262+
"target/release/bundle/msi/app-updater_{version}_x64_en-US.msi"
263263
)),
264264
Some(format!("{target}-{}", BundleTarget::Msi.name())),
265265
vec![UPDATED_EXIT_CODE],
266266
),
267267
(
268268
BundleTarget::Msi,
269269
root_dir.join(format!(
270-
"target/debug/bundle/msi/app-updater_{version}_x64_en-US.msi"
270+
"target/release/bundle/msi/app-updater_{version}_x64_en-US.msi"
271271
)),
272272
None,
273273
vec![ERROR_EXIT_CODE],
@@ -347,7 +347,7 @@ fn update_app() {
347347
});
348348
let out_updater_path = out_bundle_path.with_extension(updater_extension);
349349
let updater_path = root_dir.join(format!(
350-
"target/debug/{}",
350+
"target/release/{}",
351351
out_updater_path.file_name().unwrap().to_str().unwrap()
352352
));
353353
std::fs::rename(&out_updater_path, &updater_path).expect("failed to rename bundle");
@@ -405,7 +405,7 @@ fn update_app() {
405405

406406
for expected_exit_code in status_checks {
407407
let mut binary_cmd = if cfg!(windows) {
408-
Command::new(root_dir.join("target/debug/app-updater.exe"))
408+
Command::new(root_dir.join("target/release/app-updater.exe"))
409409
} else if cfg!(target_os = "macos") {
410410
Command::new(
411411
test_cases(&root_dir, "0.1.0", target.clone())

0 commit comments

Comments
 (0)