chore: tending to specs to clear out problems
This commit is contained in:
@@ -26,6 +26,20 @@ entity Script {
|
||||
}
|
||||
}
|
||||
|
||||
surface ScriptManagementSurface {
|
||||
facing _: ScriptOperator
|
||||
|
||||
provides:
|
||||
CreateScriptRequested(title, kind, content, entrypoint)
|
||||
CreateAndPublishScriptRequested(title, kind, content, entrypoint)
|
||||
PublishScriptRequested(script)
|
||||
DeleteScriptRequested(script)
|
||||
RunUtilityRequested(script)
|
||||
MacroExpansionRequested(script, template_context)
|
||||
BlogmarkReceived(data)
|
||||
RebuildScriptsFromFilesRequested(project)
|
||||
}
|
||||
|
||||
invariant UniqueScriptSlug {
|
||||
for a in Scripts:
|
||||
for b in Scripts:
|
||||
@@ -61,18 +75,19 @@ rule CreateAndPublishScript {
|
||||
when: CreateAndPublishScriptRequested(title, kind, content, entrypoint)
|
||||
let slug = slugify(title)
|
||||
requires: ValidateScript(content) = valid
|
||||
ensures: Script.created(
|
||||
slug: slug,
|
||||
title: title,
|
||||
kind: kind,
|
||||
content: null,
|
||||
entrypoint: entrypoint ?? "render",
|
||||
status: published,
|
||||
enabled: true,
|
||||
version: 1,
|
||||
file_path: format("scripts/{slug}.lua", slug: slug)
|
||||
)
|
||||
ensures: ScriptFileWritten(script)
|
||||
ensures:
|
||||
let new_script = Script.created(
|
||||
slug: slug,
|
||||
title: title,
|
||||
kind: kind,
|
||||
content: null,
|
||||
entrypoint: entrypoint ?? "render",
|
||||
status: published,
|
||||
enabled: true,
|
||||
version: 1,
|
||||
file_path: format("scripts/{slug}.lua", slug: slug)
|
||||
)
|
||||
ScriptFileWritten(new_script)
|
||||
}
|
||||
|
||||
rule PublishScript {
|
||||
|
||||
Reference in New Issue
Block a user