Consolidate test files: 1 spec + 1 integration spec per source file max. Merged 16 spec files into 8. Structure: main_state_machine (.spec + .integration), state_machine_manager.spec, device_action_executor.spec, configuration_evaluation_state (.spec + .integration), immediate_command_state_machine.spec, task_queue.spec. Merged soap_fault into soap.spec. All 749 tests pass. Build status: Success
This commit is contained in:
1 parent
25fa7b993b
commit
3a03f9f516
32 files changed
+1993
-6553
No files matched your search
@@ -75,3 +75,49 @@ describe('buildSoapEnvelope', () => {
|
||||
expect(xml).toContain('<cwmp:Reboot/>')
|
||||
})
|
||||
})
|
||||
|
||||
describe('extractCwmpMessage — SOAP Fault detection', () => {
|
||||
it('detects soap-env:Fault as Fault message', () => {
|
||||
const body = {
|
||||
'soap-env:Fault': {
|
||||
faultcode: 'Client',
|
||||
faultstring: 'CWMP fault',
|
||||
detail: { 'cwmp:Fault': { FaultCode: '9001', FaultString: 'Request denied' } },
|
||||
},
|
||||
}
|
||||
const msg = extractCwmpMessage(body)
|
||||
expect(msg).not.toBeNull()
|
||||
expect(msg!.type).toBe('Fault')
|
||||
expect(msg!.data.faultcode).toBe('Client')
|
||||
})
|
||||
|
||||
it('detects SOAP-ENV:Fault as Fault message', () => {
|
||||
const body = { 'SOAP-ENV:Fault': { faultcode: 'Server', faultstring: 'Internal error' } }
|
||||
const msg = extractCwmpMessage(body)
|
||||
expect(msg).not.toBeNull()
|
||||
expect(msg!.type).toBe('Fault')
|
||||
})
|
||||
|
||||
it('detects bare Fault as Fault message', () => {
|
||||
const body = { Fault: { FaultCode: '9002', FaultString: 'Internal error' } }
|
||||
const msg = extractCwmpMessage(body)
|
||||
expect(msg!.type).toBe('Fault')
|
||||
})
|
||||
|
||||
it('detects soapenv:Fault as Fault message', () => {
|
||||
const body = { 'soapenv:Fault': { faultcode: 'Client', faultstring: 'Fault' } }
|
||||
const msg = extractCwmpMessage(body)
|
||||
expect(msg!.type).toBe('Fault')
|
||||
})
|
||||
|
||||
it('prefers cwmp: prefixed keys over Fault detection', () => {
|
||||
const body = { 'cwmp:GetParameterValuesResponse': { ParameterList: [] }, 'soap-env:Fault': { faultcode: 'Client' } }
|
||||
const msg = extractCwmpMessage(body)
|
||||
expect(msg!.type).toBe('GetParameterValuesResponse')
|
||||
})
|
||||
|
||||
it('returns null when body has no cwmp: keys and no Fault', () => {
|
||||
expect(extractCwmpMessage({ 'other:Something': {} })).toBeNull()
|
||||
})
|
||||
})
|
||||
|
||||
@@ -1,64 +0,0 @@
|
||||
import { describe, it, expect } from 'vitest'
|
||||
import { extractCwmpMessage } from '../../../app/protocol/soap.js'
|
||||
|
||||
describe('extractCwmpMessage — SOAP Fault detection', () => {
|
||||
it('detects soap-env:Fault as Fault message', () => {
|
||||
const body = {
|
||||
'soap-env:Fault': {
|
||||
faultcode: 'Client',
|
||||
faultstring: 'CWMP fault',
|
||||
detail: { 'cwmp:Fault': { FaultCode: '9001', FaultString: 'Request denied' } },
|
||||
},
|
||||
}
|
||||
const msg = extractCwmpMessage(body)
|
||||
expect(msg).not.toBeNull()
|
||||
expect(msg!.type).toBe('Fault')
|
||||
expect(msg!.data.faultcode).toBe('Client')
|
||||
})
|
||||
|
||||
it('detects SOAP-ENV:Fault as Fault message', () => {
|
||||
const body = {
|
||||
'SOAP-ENV:Fault': {
|
||||
faultcode: 'Server',
|
||||
faultstring: 'Internal error',
|
||||
},
|
||||
}
|
||||
const msg = extractCwmpMessage(body)
|
||||
expect(msg).not.toBeNull()
|
||||
expect(msg!.type).toBe('Fault')
|
||||
expect(msg!.data.faultcode).toBe('Server')
|
||||
})
|
||||
|
||||
it('detects bare Fault as Fault message', () => {
|
||||
const body = {
|
||||
Fault: { FaultCode: '9002', FaultString: 'Internal error' },
|
||||
}
|
||||
const msg = extractCwmpMessage(body)
|
||||
expect(msg).not.toBeNull()
|
||||
expect(msg!.type).toBe('Fault')
|
||||
})
|
||||
|
||||
it('detects soapenv:Fault as Fault message', () => {
|
||||
const body = {
|
||||
'soapenv:Fault': { faultcode: 'Client', faultstring: 'Fault' },
|
||||
}
|
||||
const msg = extractCwmpMessage(body)
|
||||
expect(msg).not.toBeNull()
|
||||
expect(msg!.type).toBe('Fault')
|
||||
})
|
||||
|
||||
it('prefers cwmp: prefixed keys over Fault detection', () => {
|
||||
const body = {
|
||||
'cwmp:GetParameterValuesResponse': { ParameterList: [] },
|
||||
'soap-env:Fault': { faultcode: 'Client' },
|
||||
}
|
||||
const msg = extractCwmpMessage(body)
|
||||
expect(msg).not.toBeNull()
|
||||
expect(msg!.type).toBe('GetParameterValuesResponse')
|
||||
})
|
||||
|
||||
it('returns null when body has no cwmp: keys and no Fault', () => {
|
||||
const body = { 'other:Something': {} }
|
||||
expect(extractCwmpMessage(body)).toBeNull()
|
||||
})
|
||||
})
|
||||
Reference in new issue
Block a user