Skip to content

Commit

Permalink
feat(core): activate diff in log.md
Browse files Browse the repository at this point in the history
  • Loading branch information
wdavidw committed Mar 9, 2021
1 parent c2e642f commit 2d548db
Show file tree
Hide file tree
Showing 7 changed files with 88 additions and 27 deletions.
21 changes: 18 additions & 3 deletions packages/core/lib/actions/log/md.js

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

14 changes: 10 additions & 4 deletions packages/core/lib/actions/log/stream.js

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

14 changes: 13 additions & 1 deletion packages/core/src/actions/log/md.coffee.md
Original file line number Diff line number Diff line change
Expand Up @@ -49,6 +49,8 @@ nikita(async function(){
handler = ({config}) ->
state = {}
await @call $: log_fs, config, serializer:
'diff': (log) ->
"\n```diff\n#{log.message}```\n" if log.message
'nikita:action:start': ({action}) ->
act = action.parent
bastard = undefined
Expand All @@ -58,7 +60,17 @@ nikita(async function(){
act = act.parent
content = []
if config.enter and action.metadata.module and action.metadata.log isnt false and bastard isnt true
content.push "\nEntering #{action.metadata.module} (#{(action.metadata.position.map (index) -> index + 1).join '.'})\n"
content.push [
'\n'
'Entering'
' '
"#{action.metadata.module}"
' '
'('
"#{(action.metadata.position.map (index) -> index + 1).join '.'}"
')'
'\n'
].join ''
return content.join '' unless action.metadata.header
walk = (parent) ->
precious = parent.metadata.header
Expand Down
8 changes: 4 additions & 4 deletions packages/core/src/actions/log/stream.coffee.md
Original file line number Diff line number Diff line change
Expand Up @@ -41,6 +41,10 @@ Write log to custom destinations in a user provided format.
# Events
close = ->
config.stream.close() if config.end
events.on 'diff', (log) ->
return unless config.serializer.diff
data = config.serializer.diff log
config.stream.write data if data?
events.on 'nikita:action:start', ->
return unless config.serializer['nikita:action:start']
data = await config.serializer['nikita:action:start'].apply null, arguments
Expand All @@ -62,15 +66,11 @@ Write log to custom destinations in a user provided format.
data = config.serializer.stdout_stream log
config.stream.write data if data?
events.on 'nikita:resolved', ({action}) ->
# console.log 'nikita:resolved', position, uuid, action.metadata.position, !!action.parent
# return unless position.slice(0, -1).join('.') is action.metadata.position.join('.')
if config.serializer['nikita:resolved']
data = config.serializer['nikita:resolved'].apply null, arguments
config.stream.write data if data?
close()
events.on 'nikita:rejected', ({action}) ->
# console.log 'nikita:rejected', position, uuid, action.metadata, !!action.parent
# return unless position.slice(0, -1).join('.') is action.metadata.position.join('.')
if config.serializer['nikita:rejected']
data = config.serializer['nikita:rejected'].apply null, arguments
config.stream.write data if data?
Expand Down
21 changes: 18 additions & 3 deletions packages/core/test/actions/log/md.coffee
Original file line number Diff line number Diff line change
Expand Up @@ -61,9 +61,7 @@ describe 'actions.log.md', ->
log message: 'ok 1'
await @call ->
new Promise (resolve) ->
setTimeout ->
resolve()
, 500
setTimeout resolve 200
@call $header: 'h2', ({tools: {log}}) ->
log message: 'ok 2'
@fs.assert
Expand Down Expand Up @@ -164,6 +162,23 @@ describe 'actions.log.md', ->
```
"""

describe 'event `diff`', ->

they 'write message in code block', ({ssh}) ->
nikita
$ssh: ssh
$tmpdir: true
, ({metadata: {tmpdir}}) ->
await @log.md basedir: tmpdir, enter: false
await @call ({tools: {log}}) ->
log message: '1 + new line', type: 'diff'
@fs.base.readFile
target: "#{tmpdir}/localhost.log"
encoding: 'ascii'
.should.be.resolvedWith
data: '\n```diff\n1 + new line```\n'


describe 'config `enter`', ->

they 'disabled when false', ({ssh}) ->
Expand Down
15 changes: 3 additions & 12 deletions packages/file/lib/touch.js

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Original file line number Diff line number Diff line change
Expand Up @@ -93,3 +93,25 @@ describe 'file config diff', ->
content: 'some content'
diff: (text, raw) -> diff = text
diff.should.eql '1 + some content\n'

they 'honored by `log.md` action', ({ssh}) ->
nikita
$ssh: ssh
$tmpdir: true
, ({metadata: {tmpdir}}) ->
await @log.md
basedir: tmpdir
filename: 'nikita.log'
await @file
target: "#{tmpdir}/file"
content: 'some content'
diff: (text, raw) -> diff = text
{data} = await @fs.base.readFile
$log: false
target: "#{tmpdir}/nikita.log"
encoding: 'ascii'
data.should.containEql '''
```diff
1 + some content
```
'''

0 comments on commit 2d548db

Please sign in to comment.