Feat v0.9.6 stage mode collapse (#80)
All checks were successful
CI/CD / detect-changes (push) Successful in 4s
CI/CD / test-runners (push) Has been skipped
CI/CD / e2e-smoke (push) Has been skipped
CI/CD / test-frontend (push) Successful in 6s
CI/CD / test-go-pg (push) Successful in 2m49s
CI/CD / test-sqlite (push) Successful in 3m4s
CI/CD / build-and-deploy (push) Successful in 1m15s
All checks were successful
CI/CD / detect-changes (push) Successful in 4s
CI/CD / test-runners (push) Has been skipped
CI/CD / e2e-smoke (push) Has been skipped
CI/CD / test-frontend (push) Successful in 6s
CI/CD / test-go-pg (push) Successful in 2m49s
CI/CD / test-sqlite (push) Successful in 3m4s
CI/CD / build-and-deploy (push) Successful in 1m15s
Co-authored-by: Jeffrey Smith <jasafpro@gmail.com> Co-committed-by: Jeffrey Smith <jasafpro@gmail.com>
This commit was merged in pull request #80.
This commit is contained in:
@@ -19,7 +19,6 @@
|
||||
"ordinal": 0,
|
||||
"stage_mode": "form",
|
||||
"audience": "public",
|
||||
"stage_type": "simple",
|
||||
"auto_transition": false,
|
||||
"form_template": {
|
||||
"fieldsets": [
|
||||
@@ -48,7 +47,6 @@
|
||||
"ordinal": 1,
|
||||
"stage_mode": "form",
|
||||
"audience": "team",
|
||||
"stage_type": "simple",
|
||||
"auto_transition": false,
|
||||
"form_template": {
|
||||
"fieldsets": [
|
||||
@@ -71,7 +69,6 @@
|
||||
"ordinal": 2,
|
||||
"stage_mode": "form",
|
||||
"audience": "team",
|
||||
"stage_type": "simple",
|
||||
"auto_transition": false,
|
||||
"sla_seconds": 3600,
|
||||
"form_template": {
|
||||
@@ -91,7 +88,6 @@
|
||||
"ordinal": 3,
|
||||
"stage_mode": "form",
|
||||
"audience": "team",
|
||||
"stage_type": "simple",
|
||||
"auto_transition": false,
|
||||
"form_template": {
|
||||
"fieldsets": [
|
||||
@@ -108,9 +104,8 @@
|
||||
{
|
||||
"name": "verify",
|
||||
"ordinal": 4,
|
||||
"stage_mode": "review",
|
||||
"stage_mode": "form",
|
||||
"audience": "team",
|
||||
"stage_type": "simple",
|
||||
"auto_transition": false,
|
||||
"form_template": {
|
||||
"fieldsets": [
|
||||
|
||||
@@ -19,7 +19,6 @@
|
||||
"ordinal": 0,
|
||||
"stage_mode": "form",
|
||||
"audience": "team",
|
||||
"stage_type": "simple",
|
||||
"auto_transition": false,
|
||||
"form_template": {
|
||||
"fieldsets": [
|
||||
@@ -37,9 +36,8 @@
|
||||
{
|
||||
"name": "review",
|
||||
"ordinal": 1,
|
||||
"stage_mode": "review",
|
||||
"stage_mode": "form",
|
||||
"audience": "team",
|
||||
"stage_type": "simple",
|
||||
"auto_transition": false,
|
||||
"stage_config": {
|
||||
"validation": {
|
||||
@@ -53,7 +51,6 @@
|
||||
"ordinal": 2,
|
||||
"stage_mode": "form",
|
||||
"audience": "team",
|
||||
"stage_type": "simple",
|
||||
"auto_transition": false,
|
||||
"form_template": {
|
||||
"fieldsets": [
|
||||
@@ -76,7 +73,6 @@
|
||||
"ordinal": 3,
|
||||
"stage_mode": "form",
|
||||
"audience": "team",
|
||||
"stage_type": "simple",
|
||||
"auto_transition": false,
|
||||
"form_template": {
|
||||
"fieldsets": [
|
||||
|
||||
@@ -40,7 +40,6 @@
|
||||
"ordinal": 0,
|
||||
"stage_mode": "form",
|
||||
"audience": "team",
|
||||
"stage_type": "simple",
|
||||
"auto_transition": false,
|
||||
"form_template": {
|
||||
"fieldsets": [
|
||||
@@ -69,16 +68,14 @@
|
||||
"ordinal": 1,
|
||||
"stage_mode": "automated",
|
||||
"audience": "system",
|
||||
"stage_type": "automated",
|
||||
"auto_transition": true,
|
||||
"starlark_hook": "employee-onboarding:on_provision"
|
||||
},
|
||||
{
|
||||
"name": "manager-signoff",
|
||||
"ordinal": 2,
|
||||
"stage_mode": "review",
|
||||
"stage_mode": "form",
|
||||
"audience": "team",
|
||||
"stage_type": "simple",
|
||||
"auto_transition": false,
|
||||
"stage_config": {
|
||||
"validation": {
|
||||
@@ -93,7 +90,6 @@
|
||||
"ordinal": 3,
|
||||
"stage_mode": "form",
|
||||
"audience": "team",
|
||||
"stage_type": "simple",
|
||||
"auto_transition": false,
|
||||
"form_template": {
|
||||
"fieldsets": [
|
||||
@@ -113,7 +109,6 @@
|
||||
"ordinal": 4,
|
||||
"stage_mode": "automated",
|
||||
"audience": "system",
|
||||
"stage_type": "automated",
|
||||
"auto_transition": true,
|
||||
"starlark_hook": "employee-onboarding:on_welcome"
|
||||
}
|
||||
|
||||
@@ -82,7 +82,7 @@
|
||||
name: 'Team Intake',
|
||||
ordinal: 0,
|
||||
history_mode: 'full',
|
||||
stage_mode: 'chat_only'
|
||||
stage_mode: 'form'
|
||||
});
|
||||
T.assertShape(d, T.S.workflowStage, 'stage');
|
||||
T.assert(d.name === 'Team Intake', 'name mismatch');
|
||||
@@ -94,7 +94,7 @@
|
||||
name: 'Team Review',
|
||||
ordinal: 1,
|
||||
history_mode: 'summary',
|
||||
stage_mode: 'review'
|
||||
stage_mode: 'form'
|
||||
});
|
||||
T.assertShape(d, T.S.workflowStage, 'stage');
|
||||
stageIds.push(d.id);
|
||||
@@ -111,7 +111,7 @@
|
||||
name: 'Team Intake (updated)',
|
||||
ordinal: 0,
|
||||
history_mode: 'full',
|
||||
stage_mode: 'form_chat',
|
||||
stage_mode: 'form',
|
||||
form_template: { fields: [{ key: 'name', type: 'text', label: 'Name', required: true }] }
|
||||
});
|
||||
T.assert(typeof d === 'object', 'expected object');
|
||||
|
||||
@@ -408,7 +408,7 @@
|
||||
var fwfSlug = testTag + '-form-wf';
|
||||
var fChannelId = null;
|
||||
|
||||
await T.test('crud', 'workflows', 'form: create form_only workflow', async function () {
|
||||
await T.test('crud', 'workflows', 'form: create form workflow', async function () {
|
||||
var wf = await T.apiPost('/workflows', {
|
||||
name: testTag + ' Form WF',
|
||||
slug: fwfSlug,
|
||||
@@ -422,7 +422,7 @@
|
||||
name: 'Contact Info',
|
||||
ordinal: 0,
|
||||
history_mode: 'full',
|
||||
stage_mode: 'form_only',
|
||||
stage_mode: 'form',
|
||||
form_template: {
|
||||
fields: [
|
||||
{ key: 'name', type: 'text', label: 'Full Name', required: true, validation: { min_length: 2 } },
|
||||
@@ -436,7 +436,7 @@
|
||||
});
|
||||
|
||||
await T.apiPost('/workflows/' + fwfId + '/stages', {
|
||||
name: 'Done', ordinal: 1, history_mode: 'full', stage_mode: 'chat_only'
|
||||
name: 'Done', ordinal: 1, history_mode: 'full', stage_mode: 'form'
|
||||
});
|
||||
|
||||
await T.apiPatch('/workflows/' + fwfId, { is_active: true });
|
||||
@@ -456,7 +456,7 @@
|
||||
var d = await T.sessionGet('/w/' + fChannelId + '/form');
|
||||
T.assert(d._status === 200, 'expected 200, got ' + d._status);
|
||||
T.assertHasKey(d, 'stage_mode', 'form response');
|
||||
T.assert(d.stage_mode === 'form_only', 'expected form_only, got ' + d.stage_mode);
|
||||
T.assert(d.stage_mode === 'form', 'expected form, got ' + d.stage_mode);
|
||||
T.assertHasKey(d, 'form_template', 'form response');
|
||||
T.assert(d.form_template.fields && d.form_template.fields.length === 3,
|
||||
'expected 3 fields, got ' + (d.form_template.fields ? d.form_template.fields.length : 0));
|
||||
@@ -520,7 +520,7 @@
|
||||
var xwfSlug = testTag + '-xvisitor';
|
||||
var chA = null, chB = null;
|
||||
|
||||
await T.test('crud', 'workflows', 'xvisitor: setup form_only workflow', async function () {
|
||||
await T.test('crud', 'workflows', 'xvisitor: setup form workflow', async function () {
|
||||
var wf = await T.apiPost('/workflows', {
|
||||
name: testTag + ' XVisitor',
|
||||
slug: xwfSlug,
|
||||
@@ -530,7 +530,7 @@
|
||||
T.registerCleanup(function () { if (xwfId) return T.safeDelete('/workflows/' + xwfId); });
|
||||
|
||||
await T.apiPost('/workflows/' + xwfId + '/stages', {
|
||||
name: 'Form', ordinal: 0, stage_mode: 'form_only', history_mode: 'full',
|
||||
name: 'Form', ordinal: 0, stage_mode: 'form', history_mode: 'full',
|
||||
form_template: {
|
||||
fields: [{ key: 'name', type: 'text', label: 'Name', required: true }]
|
||||
}
|
||||
@@ -627,7 +627,7 @@
|
||||
var s1 = await T.apiPost('/workflows/' + wpWfId + '/stages', {
|
||||
name: 'Intake',
|
||||
ordinal: 0,
|
||||
stage_mode: 'form_only',
|
||||
stage_mode: 'form',
|
||||
history_mode: 'full',
|
||||
form_template: { fields: [{ key: 'name', type: 'text', label: 'Full Name', required: true }] }
|
||||
});
|
||||
@@ -637,7 +637,7 @@
|
||||
var s2 = await T.apiPost('/workflows/' + wpWfId + '/stages', {
|
||||
name: 'Review',
|
||||
ordinal: 1,
|
||||
stage_mode: 'review',
|
||||
stage_mode: 'form',
|
||||
history_mode: 'summary'
|
||||
});
|
||||
T.assertShape(s2, T.S.workflowStage, 'stage2');
|
||||
@@ -650,7 +650,7 @@
|
||||
// Use the ICD test runner's own package ID (always installed when tests run).
|
||||
var realPkgId = 'icd-test-runner';
|
||||
var stageBase = {
|
||||
name: 'Intake', ordinal: 0, stage_mode: 'form_only', history_mode: 'full',
|
||||
name: 'Intake', ordinal: 0, stage_mode: 'form', history_mode: 'full',
|
||||
form_template: { fields: [{ key: 'name', type: 'text', label: 'Full Name', required: true }] }
|
||||
};
|
||||
|
||||
@@ -720,8 +720,8 @@
|
||||
T.assert(stList.length === 2, 'should have 2 stages, got ' + stList.length);
|
||||
T.assert(stList[0].name === 'Intake', 'stage 0 name should be Intake');
|
||||
T.assert(stList[1].name === 'Review', 'stage 1 name should be Review');
|
||||
T.assert(stList[0].stage_mode === 'form_only', 'stage 0 mode should be form_only');
|
||||
T.assert(stList[1].stage_mode === 'review', 'stage 1 mode should be review');
|
||||
T.assert(stList[0].stage_mode === 'form', 'stage 0 mode should be form');
|
||||
T.assert(stList[1].stage_mode === 'form', 'stage 1 mode should be form');
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
@@ -30,7 +30,6 @@
|
||||
"ordinal": 0,
|
||||
"stage_mode": "form",
|
||||
"audience": "team",
|
||||
"stage_type": "simple",
|
||||
"auto_transition": false,
|
||||
"form_template": {
|
||||
"fieldsets": [
|
||||
@@ -50,16 +49,14 @@
|
||||
"ordinal": 1,
|
||||
"stage_mode": "automated",
|
||||
"audience": "system",
|
||||
"stage_type": "automated",
|
||||
"auto_transition": true,
|
||||
"starlark_hook": "webhook-notifier:on_fire"
|
||||
},
|
||||
{
|
||||
"name": "result",
|
||||
"ordinal": 2,
|
||||
"stage_mode": "review",
|
||||
"stage_mode": "form",
|
||||
"audience": "team",
|
||||
"stage_type": "simple",
|
||||
"auto_transition": false,
|
||||
"form_template": {
|
||||
"fieldsets": [
|
||||
|
||||
Reference in New Issue
Block a user