Welcome to the Linux Foundation Forum!

Lab 11.2: Incorrectly formulated task

akaiurin
akaiurin Posts: 8
edited March 15 in LFW211 Class Forum

Lab 11.2 task:
Using the Buffer API in some way, edit the code so that the base64 constant contains a
Base64 representation of the str constant.

'use strict'
const assert = require('assert')
const str = 'buffers are neat'
/* convert str to base64 */
const base64 = ''
console.log(base64)
assert.equal(base64, Buffer.from([
89,110,86,109,90,109,86,121,99,
121,66,104,99,109,85,103,98,109,
86,104,100,65,61,61]))
console.log('passed!')

If I correctly understand, based on described task, final result string should be represented as base64 string. But as you can find, task code contain assert that checks final result - is it buffer or not. So the final result should be buffer(byte) representation of base64 string. It would be perfect, if somehow task will be reformulated to correct statement.

Hope, JSNAD Certification Exam does not contain same incorrect formulation...

Comments

  • xdxmxc
    xdxmxc Posts: 157

    @akaiurin it's coerced:

    assert.equal('a', Buffer.from('a')) // does not throw assert error
    
  • akaiurin
    akaiurin Posts: 8

    @xdxmxc said:
    @akaiurin it's coerced:

    assert.equal('a', Buffer.from('a')) // does not throw assert error
    

    Yeah, finally I found why I had such a problem.
    I've downloaded archive with labs from resources section and probably it contains non-actual code versus code in lab formulation. So you need to double check your files.

  • xdxmxc
    xdxmxc Posts: 157

    unclear - let me know if there's a specific actual problem

  • zali15290
    zali15290 Posts: 1

    what is the final result? can someone share the actual code that passes the test. that would help identify where there is a discrepancy. im not sure what I need to be doing in this lab, i have converted to the string representation, but the tests want a binary representation in order to pass.

  • ailequal
    ailequal Posts: 3

    @xdxmxc said:
    @akaiurin it's coerced:

    assert.equal('a', Buffer.from('a')) // does not throw assert error
    

    Today I was doing this exercise and I couldn't as well figure out why it wasn't working. I red all the past posts regarding this exercise, and sadly there are still some errors in it.

    Basically right now, as stated by @akaiurin, we have to set the variable base64 into a string (not a Buffer instance)!!

    The snippet from @xdxmxc proves that we can actually compare a string and a Buffer instance with "assert.equal", but the exercise right now is using "assert.deepStrictEqual". This is the root of the problem. Fixing the assert will make the exercise completable as originally requested, otherwise we need to actually pass a Buffer instance (which again, it's not what the exercise requested in the first place).

  • xdxmxc
    xdxmxc Posts: 157
    edited September 2

    thanks @ailequal - assert.equal with coercian is considered legacy, so it was updated to deepStrictEqual, but base64 should also be converted to a buffer, so the code is being update to

    'use strict'
    const assert = require('assert')
    const str = 'buffers are neat'
    const base64 = '' // convert str to base64
    
    console.log(base64)
    
    assert.deepStrictEqual(Buffer.from(base64), Buffer.from([
      89,110,86,109,90,109,86,121,99,
      121,66,104,99,109,85,103,98,109,
      86,104,100,65,61,61]))
    
    console.log('passed!')
    

Categories

Upcoming Training