Skip to content

Commit 195cfe3

Browse files
committed
fix(vite-plugin-warpdrive): vitest incorrectly configured, format & types & import
1 parent ef08b8f commit 195cfe3

File tree

6 files changed

+61
-16
lines changed

6 files changed

+61
-16
lines changed

packages/vite-plugin-warpdrive/src/index.ts

Lines changed: 12 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -138,7 +138,7 @@ export function WarpDrivePlugin(options: WarpDrivePluginOptions): Plugin {
138138
return
139139
}
140140
if (!options.provider) {
141-
resolvedConfig.logger?.warn?.(`[${pluginName}] no upload provider configured, skipping upload step`)
141+
resolvedConfig.logger.warn(`[${pluginName}] no upload provider configured, skipping upload step`)
142142
return
143143
}
144144

@@ -186,30 +186,30 @@ export function WarpDrivePlugin(options: WarpDrivePluginOptions): Plugin {
186186
return
187187
}
188188
if (!options.provider) {
189-
resolvedConfig.logger?.warn?.(`[${pluginName}] no upload provider configured, skipping upload step`)
189+
resolvedConfig.logger.warn(`[${pluginName}] no upload provider configured, skipping upload step`)
190190
return
191191
}
192192
if (!pendingUploads.length)
193193
return
194194
if (isDryRun) {
195-
resolvedConfig.logger.info?.(
195+
resolvedConfig.logger.info(
196196
`[${pluginName}] dry run enabled; skipping clean/upload for ${pendingUploads.length} assets`,
197197
)
198198
return
199199
}
200200

201201
if (shouldCleanRemote && !cleanedRemote) {
202202
if (!prefix) {
203-
resolvedConfig.logger?.warn?.(`[${pluginName}] skipping clean step because no prefix provided`)
203+
resolvedConfig.logger.warn(`[${pluginName}] skipping clean step because no prefix provided`)
204204
}
205205
else if (typeof options.provider.cleanPrefix === 'function') {
206-
resolvedConfig.logger.info?.(`[${pluginName}] cleaning remote prefix: ${prefix}`)
206+
resolvedConfig.logger.info(`[${pluginName}] cleaning remote prefix: ${prefix}`)
207207
await options.provider.cleanPrefix(prefix)
208-
resolvedConfig.logger.info?.(`[${pluginName}] cleaned remote prefix: ${prefix}`)
208+
resolvedConfig.logger.info(`[${pluginName}] cleaned remote prefix: ${prefix}`)
209209
cleanedRemote = true
210210
}
211211
else {
212-
resolvedConfig.logger?.warn?.(
212+
resolvedConfig.logger.warn(
213213
`[${pluginName}] clean is enabled but provider does not support prefix cleaning; skipping`,
214214
)
215215
}
@@ -224,7 +224,7 @@ export function WarpDrivePlugin(options: WarpDrivePluginOptions): Plugin {
224224
try {
225225
const skip = await options.provider.shouldSkipUpload(localPath, key)
226226
if (skip) {
227-
resolvedConfig.logger.info?.(
227+
resolvedConfig.logger.info(
228228
`[${pluginName}] skipped upload (not modified): ${fileName} -> ${key}`,
229229
)
230230
if (shouldDeleteLocalAsset) {
@@ -233,14 +233,14 @@ export function WarpDrivePlugin(options: WarpDrivePluginOptions): Plugin {
233233
resolvedConfig.logger.info(`[${pluginName}] deleted local asset: ${fileName}`)
234234
}
235235
catch (error) {
236-
resolvedConfig.logger.warn?.(`[${pluginName}] failed to delete local asset ${fileName}: ${error}`)
236+
resolvedConfig.logger.warn(`[${pluginName}] failed to delete local asset ${fileName}: ${error}`)
237237
}
238238
}
239239
return
240240
}
241241
}
242242
catch (error) {
243-
resolvedConfig.logger.warn?.(
243+
resolvedConfig.logger.warn(
244244
`[${pluginName}] could not determine if upload should be skipped for ${fileName}: ${error}`,
245245
)
246246
}
@@ -259,7 +259,7 @@ export function WarpDrivePlugin(options: WarpDrivePluginOptions): Plugin {
259259
resolvedConfig.logger.info(`[${pluginName}] deleted local asset: ${fileName}`)
260260
}
261261
catch (error) {
262-
resolvedConfig.logger.warn?.(`[${pluginName}] failed to delete local asset ${fileName}: ${error}`)
262+
resolvedConfig.logger.warn(`[${pluginName}] failed to delete local asset ${fileName}: ${error}`)
263263
}
264264
}
265265
})())
@@ -278,5 +278,6 @@ function normalizePrefix(prefix: string) {
278278
function getAssetSize(asset: OutputAsset) {
279279
if (typeof asset.source === 'string')
280280
return Buffer.byteLength(asset.source)
281+
281282
return asset.source?.byteLength ?? 0
282283
}
Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
import { join } from 'node:path'
2+
import { cwd, env } from 'node:process'
3+
4+
import { describe, expect, it } from 'vitest'
5+
6+
import { createS3Provider } from './s3'
7+
8+
describe('s3', (test) => {
9+
if (!env.S3_ENDPOINT || !env.S3_REGION || !env.S3_ACCESS_KEY_ID || !env.S3_SECRET_ACCESS_KEY) {
10+
test.skip('S3_ENDPOINT, S3_REGION, S3_ACCESS_KEY_ID and S3_SECRET_ACCESS_KEY must be set in environment to run this test', () => {})
11+
return
12+
}
13+
14+
// eslint-disable-next-line test/prefer-lowercase-title
15+
describe('S3Provider', () => {
16+
it('should skip upload', async () => {
17+
const s3 = createS3Provider({
18+
endpoint: env.S3_ENDPOINT,
19+
accessKeyId: env.S3_ACCESS_KEY_ID,
20+
secretAccessKey: env.S3_SECRET_ACCESS_KEY,
21+
region: env.S3_REGION,
22+
publicBaseUrl: env.WARP_DRIVE_PUBLIC_BASE ?? env.S3_ENDPOINT,
23+
})
24+
25+
expect(await s3.shouldSkipUpload(join(cwd(), 'packages', 'stage-ui', 'src', 'assets', 'live2d', 'models', 'hiyori_free_zh.zip'), '/proj-airi/stage-web/assets/hiyori_free_zh-D9UJNK98.zip')).toBe(true)
26+
})
27+
})
28+
})

packages/vite-plugin-warpdrive/src/providers/s3.ts

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,12 @@
1+
import type { Buffer } from 'node:buffer'
2+
3+
import type { UploadProvider } from './types'
4+
15
import { createHash } from 'node:crypto'
26
import { readFile } from 'node:fs/promises'
3-
import { join } from 'node:path'
47

58
import { S3mini } from 's3mini'
69

7-
import type { UploadProvider } from './types'
8-
910
export interface S3ProviderOptions {
1011
endpoint: string
1112
accessKeyId: string
@@ -45,6 +46,7 @@ export function createS3Provider(options: S3ProviderOptions): UploadProvider {
4546
const normalizedPrefix = normalizePrefix(prefix)
4647
if (!normalizedPrefix)
4748
return
49+
4850
const objects = await client.listObjects('/', `${normalizedPrefix}/`)
4951
if (!objects?.length)
5052
return
Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
import { join } from 'node:path'
2+
import { cwd } from 'node:process'
3+
4+
import { loadEnv } from 'vite'
5+
import { defineConfig } from 'vitest/config'
6+
7+
export default defineConfig(({ mode }) => {
8+
return ({
9+
test: {
10+
include: ['src/**/*.test.ts'],
11+
env: loadEnv(mode, join(cwd(), 'packages', 'vite-plugin-warpdrive'), ''),
12+
},
13+
})
14+
})

services/telegram-bot/vitest.config.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ export default defineConfig(({ mode }) => {
1010
test: {
1111
// mode defines what ".env.{mode}" file to choose if exists
1212
env: loadEnv(mode, cwd(), ''),
13-
workspace: [
13+
projects: [
1414
{
1515
extends: true,
1616
test: {

vitest.config.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,8 +3,8 @@ import { defineConfig } from 'vitest/config'
33
export default defineConfig({
44
test: {
55
projects: [
6-
'packages/injecta',
76
'packages/stage-ui',
7+
'packages/vite-plugin-warpdrive',
88
],
99
},
1010
})

0 commit comments

Comments
 (0)