104 lines
2.3 KiB
JavaScript
104 lines
2.3 KiB
JavaScript
const test = require('node:test');
|
|
const assert = require('node:assert/strict');
|
|
|
|
const {
|
|
getActivationStrategy,
|
|
isRecoverableStep9AuthFailure,
|
|
} = require('../content/activation-utils.js');
|
|
|
|
test('getActivationStrategy prefers requestSubmit for submit buttons inside forms', () => {
|
|
assert.deepEqual(
|
|
getActivationStrategy({
|
|
tagName: 'button',
|
|
type: 'submit',
|
|
hasForm: true,
|
|
pathname: '/email-verification',
|
|
}),
|
|
{ method: 'requestSubmit' }
|
|
);
|
|
});
|
|
|
|
test('getActivationStrategy uses native click for non-submit actions', () => {
|
|
assert.deepEqual(
|
|
getActivationStrategy({
|
|
tagName: 'button',
|
|
type: 'button',
|
|
hasForm: true,
|
|
}),
|
|
{ method: 'click' }
|
|
);
|
|
|
|
assert.deepEqual(
|
|
getActivationStrategy({
|
|
tagName: 'a',
|
|
type: '',
|
|
hasForm: false,
|
|
}),
|
|
{ method: 'click' }
|
|
);
|
|
});
|
|
|
|
test('getActivationStrategy only uses requestSubmit on email verification routes', () => {
|
|
assert.deepEqual(
|
|
getActivationStrategy({
|
|
tagName: 'button',
|
|
type: 'submit',
|
|
hasForm: true,
|
|
pathname: '/u/signup/details',
|
|
}),
|
|
{ method: 'click' }
|
|
);
|
|
|
|
assert.deepEqual(
|
|
getActivationStrategy({
|
|
tagName: 'button',
|
|
type: 'submit',
|
|
hasForm: true,
|
|
pathname: '/email-verification',
|
|
}),
|
|
{ method: 'requestSubmit' }
|
|
);
|
|
});
|
|
|
|
test('isRecoverableStep9AuthFailure matches timeout and CPA auth failure statuses', () => {
|
|
assert.equal(
|
|
isRecoverableStep9AuthFailure('认证失败: Timeout waiting for OAuth callback'),
|
|
true
|
|
);
|
|
|
|
assert.equal(
|
|
isRecoverableStep9AuthFailure('认证失败: Request failed with status code 502'),
|
|
true
|
|
);
|
|
|
|
assert.equal(
|
|
isRecoverableStep9AuthFailure('认证失败: timeout of 30000ms exceeded'),
|
|
true
|
|
);
|
|
|
|
assert.equal(
|
|
isRecoverableStep9AuthFailure('回调 URL 提交失败: oauth flow is not pending'),
|
|
true
|
|
);
|
|
|
|
assert.equal(
|
|
isRecoverableStep9AuthFailure('提交回调失败:请更新CLI Proxy API或检查连接'),
|
|
true
|
|
);
|
|
|
|
assert.equal(
|
|
isRecoverableStep9AuthFailure('认证失败:Bad Request'),
|
|
true
|
|
);
|
|
|
|
assert.equal(
|
|
isRecoverableStep9AuthFailure('认证成功!'),
|
|
false
|
|
);
|
|
|
|
assert.equal(
|
|
isRecoverableStep9AuthFailure('等待中'),
|
|
false
|
|
);
|
|
});
|