코드 주석을 이 저장소 기준으로 정리
This commit is contained in:
@@ -128,7 +128,7 @@ beforeEach(async () => {
|
||||
});
|
||||
|
||||
describe('출석 — S-H-ATTEND (fn-quest-attend)', () => {
|
||||
it('없는 퀘스트 · 출석이 아닌 퀘스트 ID 로는 지급하지 않는다(리뷰 H2)', async () => {
|
||||
it('없는 퀘스트 · 출석이 아닌 퀘스트 ID 로는 지급하지 않는다', async () => {
|
||||
expect(await codeOf(() => call(fnQuestAttend, { questId: 'no-such-quest' }))).toBe('E-QST-01');
|
||||
expect(await codeOf(() => call(fnQuestAttend, { questId: STEPS_QUEST }))).toBe('E-QST-01');
|
||||
expect((await db().collection(`users/${UID}/popTransactions`).get()).size).toBe(0);
|
||||
@@ -314,7 +314,7 @@ describe('만보기 — S-H-WALK (fn-quest-verify-steps · 정책 원장 B-26)',
|
||||
});
|
||||
});
|
||||
|
||||
describe('클라이언트가 고른 ID 로 한도를 다시 열 수 없다 (리뷰 재검토)', () => {
|
||||
describe('클라이언트가 고른 ID 로 한도를 다시 열 수 없다', () => {
|
||||
it('걸음: 없는 퀘스트 · 걸음이 아닌 퀘스트 ID 로는 지급하지 않는다', async () => {
|
||||
expect(await codeOf(() => call(fnQuestVerifySteps, { questId: 'no-such-walk', steps: 5_200 })))
|
||||
.toBe('E-QST-01');
|
||||
@@ -534,7 +534,7 @@ describe('방문 — S-H-PLACE (fn-quest-verify-place)', () => {
|
||||
expect((await progress.get()).get('count')).toBe(2);
|
||||
});
|
||||
|
||||
it('없는 퀘스트 · 다른 장소의 퀘스트 · 다른 팬덤 퀘스트로는 지급하지 않는다(리뷰 B2 · C-16)', async () => {
|
||||
it('없는 퀘스트 · 다른 장소의 퀘스트 · 다른 팬덤 퀘스트로는 지급하지 않는다(C-16)', async () => {
|
||||
expect(await codeOf(() => call(fnQuestVerifyPlace, { ...inRange, questId: 'no-such-quest' })))
|
||||
.toBe('E-QST-01');
|
||||
await db().doc('quests/place-elsewhere').set({ type: 'location', placeId: 'other-place' });
|
||||
@@ -725,7 +725,7 @@ describe('POP → 행성 반영 (별첨 1 ② 완료 시나리오 1)', () => {
|
||||
// 후원할 금액을 만든다. 지갑만 올리지 않고 원장을 지난다 — 3자 대조가 깨지면
|
||||
// 차감이 E-POP-02 로 막힌다.
|
||||
await grantPop({
|
||||
// 후원은 기여 POP 만 쓴다(원장 B-33) — 기여 잔액을 만든다.
|
||||
// 후원은 기여 POP 만 쓴다(정책 원장 B-33) — 기여 잔액을 만든다.
|
||||
uid: UID, popType: 'support', amount: 3_000,
|
||||
reasonCode: 'ADMIN_GRANT', idempotencyKey: `seed:${UID}`,
|
||||
});
|
||||
@@ -746,7 +746,7 @@ describe('POP → 행성 반영 (별첨 1 ② 완료 시나리오 1)', () => {
|
||||
expect(user.get('totalContributedPop')).toBe(3_000);
|
||||
// EXP 는 원장이 움직일 때 함께 갱신된다 — 출석 보상 10 + 후원 3,000(C-18 단순안).
|
||||
expect(user.get('tier')).toBeUndefined();
|
||||
// EXP 는 출석(인정 활동 1건)만 — 후원은 EXP 대상이 아니다(리뷰 B1).
|
||||
// EXP 는 출석(인정 활동 1건)만 — 후원은 EXP 대상이 아니다.
|
||||
expect(user.get('userExp')).toBe(100);
|
||||
expect(user.get('userLevel')).toBe(1);
|
||||
const member = await db().doc(`fandoms/${FANDOM}/members/${UID}`).get();
|
||||
@@ -765,7 +765,7 @@ describe('POP → 행성 반영 (별첨 1 ② 완료 시나리오 1)', () => {
|
||||
});
|
||||
});
|
||||
|
||||
describe('진행 상태 — 일시 정지 · 이어하기 · 진행완료 (fn-quest-progress · 원장 C-83)', () => {
|
||||
describe('진행 상태 — 일시 정지 · 이어하기 · 진행완료 (fn-quest-progress · 정책 원장 C-83)', () => {
|
||||
const ref = () => db().doc(`users/${UID}/questProgress/${STEPS_QUEST}`);
|
||||
|
||||
it('진행중 → 진행완료를 남기고, 일일 한도 · 완료 횟수는 건드리지 않는다', async () => {
|
||||
|
||||
Reference in New Issue
Block a user