Skip to content

Commit dc6d457

Browse files
committed
Add suffix support, simplify tests
1 parent cbe6797 commit dc6d457

File tree

10 files changed

+46
-63
lines changed

10 files changed

+46
-63
lines changed

index.js

Lines changed: 12 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -77,11 +77,11 @@ async function processFiles(fileNames, config) {
7777
}
7878

7979
async function processFile(fileName,
80-
{ source, target, targetDir, fingerprint, assetManager, variant, suffix }) {
80+
{ source, target, targetDir, fingerprint, assetManager, variant }) {
8181
let sourcePath = path.join(source, fileName);
82-
let targetPath = path.join(target, fileName);
82+
let targetPath = addSuffix(path.join(target, fileName), variant.suffix);
8383

84-
let format = variant.format ? variant.format : fileExtension(fileName);
84+
let format = variant.format ? variant.format : extname(fileName);
8585

8686
let output = format === "svg" ?
8787
await optimizeSVG(sourcePath) :
@@ -138,11 +138,18 @@ async function optimizeBitmap(sourcePath, format,
138138
return image.toBuffer();
139139
}
140140

141+
function addSuffix(filepath, suffix = "") {
142+
let directory = path.dirname(filepath);
143+
let extension = path.extname(filepath);
144+
let basename = path.basename(filepath, extension);
145+
return path.join(directory, `${basename}${suffix}${extension}`);
146+
}
147+
141148
function withFileExtension(...extensions) {
142-
return filename => extensions.includes(fileExtension(filename));
149+
return filename => extensions.includes(extname(filename));
143150
}
144151

145152
// extname follows this annoying idea that the dot belongs to the extension
146-
function fileExtension(filename) {
153+
function extname(filename) {
147154
return path.extname(filename).slice(1);
148155
}

test/prepare

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -11,8 +11,4 @@ cp test/test_basic/src/example.jpg test/test_webp/src/example.jpg
1111
cp test/test_basic/src/example.png test/test_webp/src/example.png
1212
cp test/test_basic/src/example.webp test/test_webp/src/example.webp
1313

14-
cp test/test_basic/src/example.jpg test/test_thumbnail/src/example.jpg
15-
cp test/test_basic/src/example.png test/test_thumbnail/src/example.png
16-
17-
cp test/test_basic/src/example.jpg test/test_thumbnail_square/src/example.jpg
18-
cp test/test_basic/src/example.png test/test_thumbnail_square/src/example.png
14+
cp test/test_basic/src/example.jpg test/test_resizing/src/nested/example.jpg

test/run

Lines changed: 8 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -75,26 +75,17 @@ begin "$root/test_webp"
7575
assert_mime_type "image/webp" dist/example.webp
7676
end
7777

78-
begin "$root/test_thumbnail"
78+
begin "$root/test_resizing"
7979
faucet
80-
assert_dimensions "300x200" dist/example.jpg
81-
assert_dimensions "300x225" dist/example.png
82-
end
8380

84-
begin "$root/test_thumbnail_square"
85-
faucet
86-
assert_dimensions "300x300" dist/example.jpg
87-
assert_dimensions "300x300" dist/example.png
88-
end
81+
assert_mime_type "image/jpeg" dist/nested/example-small.jpg
82+
assert_dimensions "3000x2000" dist/nested/example-small.jpg
8983

90-
# TODO: This does not work on Github Actions, and I don't know why
91-
# begin "$root/test_scaling"
92-
# faucet
93-
# assert_dimensions "3000x2000" dist/example.jpg
94-
# assert_dimensions "280x210" dist/example.png
95-
# end
84+
assert_mime_type "image/jpeg" dist/nested/example-thumbnail.jpg
85+
assert_dimensions "300x200" dist/nested/example-thumbnail.jpg
9686

97-
# TODO: Add Suffix
98-
# Merge the last three tests into one with three different suffixes
87+
assert_mime_type "image/jpeg" dist/nested/example-square.jpg
88+
assert_dimensions "300x300" dist/nested/example-square.jpg
89+
end
9990

10091
echo; echo "SUCCESS: all tests passed"
Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
"use strict";
2+
let path = require("path");
3+
4+
module.exports = {
5+
images: [{
6+
source: "./src",
7+
target: "./dist",
8+
scale: 0.5,
9+
suffix: "-small"
10+
}, {
11+
source: "./src",
12+
target: "./dist",
13+
width: 300,
14+
height: 300,
15+
suffix: "-thumbnail"
16+
}, {
17+
source: "./src",
18+
target: "./dist",
19+
width: 300,
20+
height: 300,
21+
keepRatio: false,
22+
suffix: "-square"
23+
}],
24+
plugins: [path.resolve(__dirname, "../..")]
25+
};
File renamed without changes.

test/test_scaling/faucet.config.js

Lines changed: 0 additions & 11 deletions
This file was deleted.

test/test_thumbnail/faucet.config.js

Lines changed: 0 additions & 12 deletions
This file was deleted.

test/test_thumbnail/src/.keep

Whitespace-only changes.

test/test_thumbnail_square/faucet.config.js

Lines changed: 0 additions & 13 deletions
This file was deleted.

test/test_thumbnail_square/src/.keep

Whitespace-only changes.

0 commit comments

Comments
 (0)