fix: persist team changes only after versioned server confirmation
This commit is contained in:
@@ -217,3 +217,15 @@ test('profile and saved-filter writes require the loaded revision and reject con
|
||||
assert.equal((await request('/api/me/data','PUT',{anahtar,deger,revision:null},other)).status,200);
|
||||
}
|
||||
});
|
||||
test('team membership rejects stale and over-quota writes and permits removing last member',async()=>{
|
||||
const anahtar='ekip',member={id:'qa-team',name:'QA ekip üyesi',role:'Uzman',email:''};
|
||||
const initial=await request('/api/me/data');
|
||||
const revision=initial.data.revisions.ekip ?? null;
|
||||
assert.equal((await request('/api/me/data','PUT',{anahtar,deger:{},revision})).status,400);
|
||||
const saved=await request('/api/me/data','PUT',{anahtar,deger:[member],revision});assert.equal(saved.status,200);
|
||||
const stale=await request('/api/me/data','PUT',{anahtar,deger:[],revision});assert.equal(stale.status,409);
|
||||
assert.equal((await request('/api/me/data','PUT',{anahtar,deger:[member,{...member,id:'qa-2'}],revision:saved.data.revision})).status,402);
|
||||
assert.deepEqual((await request('/api/me/data')).data.veri.ekip,[member]);
|
||||
assert.equal((await request('/api/me/data','PUT',{anahtar,deger:[],revision:saved.data.revision})).status,200);
|
||||
assert.deepEqual((await request('/api/me/data')).data.veri.ekip,[]);
|
||||
});
|
||||
|
||||
@@ -0,0 +1,8 @@
|
||||
import test from 'node:test';
|
||||
import assert from 'node:assert/strict';
|
||||
import {validateTeam} from '../src/services/teamData.js';
|
||||
test('team data accepts empty roster and rejects malformed or duplicate members',()=>{
|
||||
const valid={id:'qa',name:'QA Uzman',role:'Uzman',email:'qa@example.test'};
|
||||
assert.deepEqual(validateTeam([]),[]);assert.deepEqual(validateTeam([valid]),[valid]);
|
||||
for(const bad of [{},null,[{}],[{...valid,name:' '}],[{...valid,email:'invalid'}],[{...valid,role:null}],[valid,valid]])assert.throws(()=>validateTeam(bad));
|
||||
});
|
||||
Reference in New Issue
Block a user