fix: 0.1.0 사전 점검 차단 결함을 보정
공유 archive 마이그레이션과 런타임 설정 보존, AVIF 판별 및 문서 생성을 수정한다. 조건부 통합 격리를 보강하고 취약 의존성을 갱신하며 릴리스 메타데이터를 정리한다.
This commit is contained in:
@@ -1359,6 +1359,37 @@ describe('account self service', () => {
|
||||
}
|
||||
});
|
||||
|
||||
it('stores AVIF account icons with the public AVIF extension and media type', async () => {
|
||||
const iconDir = await fs.mkdtemp(path.join(os.tmpdir(), 'sammo-account-icon-avif-'));
|
||||
try {
|
||||
const { caller, users, sessions, userIconUpload } = buildCaller({ userIconDir: iconDir });
|
||||
const user = await users.createUser({
|
||||
username: 'icon-avif',
|
||||
password: 'current-password',
|
||||
});
|
||||
const session = await sessions.createSession(user);
|
||||
const avif = await sharp({
|
||||
create: { width: 64, height: 64, channels: 4, background: '#334455' },
|
||||
})
|
||||
.avif()
|
||||
.toBuffer();
|
||||
|
||||
const result = await caller.account.changeIcon({
|
||||
sessionToken: session.sessionToken,
|
||||
imageData: `data:image/avif;base64,${avif.toString('base64')}`,
|
||||
});
|
||||
|
||||
expect(result.iconUrl).toMatch(
|
||||
/^https:\/\/sam-image\.hided\.net\/icons\/users\/core2026\/[a-f0-9]{32}\.avif$/
|
||||
);
|
||||
expect(userIconUpload.upload).toHaveBeenCalledWith(
|
||||
expect.objectContaining({ contentType: 'image/avif', body: avif })
|
||||
);
|
||||
} finally {
|
||||
await fs.rm(iconDir, { recursive: true, force: true });
|
||||
}
|
||||
});
|
||||
|
||||
it('atomically allows only one icon change per KST day and removes the losing file', async () => {
|
||||
const iconDir = await fs.mkdtemp(path.join(os.tmpdir(), 'sammo-account-icon-race-'));
|
||||
try {
|
||||
|
||||
Reference in New Issue
Block a user