Welcome to the Linux Foundation Forum!

Chapter 11, Lab 2 Problem

Hi, just getting right to the subject... I have tried to use Buffer.from(str), but after asserting, i notice that the error returned had a completly different number of bytes than the one with which is compared to.
So, i used Buffer.from(asserted_array_of_bytes).toString() and the value of that is YnVmZmVycyBhcmUgbmVhdA==.

My question here is ( because i don't want the answer, i rather find the answer by myself, but a little bit of guidance is welcomed ): Am i doing something wrong, and the assert should work just fine if str is being converted properly ?

Thanks.

Best Answer

  • davidmarkclements
    davidmarkclements Posts: 270
    Answer ✓

    hey @assist it needs to be a base64 representation of str, but what you're creating is is a Buffer of str. So you need to modify your answer so that it's a string containing a base64 of str

Answers

  • Guys, I am also struggling with this one. Can someone give me a light here?

    What i tried so far:

    "use strict";
    const assert = require("assert");
    const str = "buffers are neat";
    
    const buffer = Buffer.from(str);
    const base64string = buffer.toString("base64");
    const base64 = Buffer.from(base64string, "base64");
    console.log("base64: ", base64);
    
    assert.strictEqual(
      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!");
    

    I've also tried:

    "use strict";
    const assert = require("assert");
    const str = "buffers are neat";
    
    const base64 = Buffer.from(str, "base64");
    console.log("base64: ", base64);
    
    assert.strictEqual(
      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!");
    

    Unfortunately there's something that I am not getting here... I tried to re-read the material, but i could not find anything to help me. Can someone share a solution? This one seems silly but there's something that I am not getting yet...

  • @jwandekoken said:
    Guys, I am also struggling with this one. Can someone give me a light here?

    What i tried so far:

    "use strict";
    const assert = require("assert");
    const str = "buffers are neat";
    
    const buffer = Buffer.from(str);
    const base64string = buffer.toString("base64");
    const base64 = Buffer.from(base64string, "base64");
    console.log("base64: ", base64);
    
    assert.strictEqual(
      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!");
    

    I've also tried:

    "use strict";
    const assert = require("assert");
    const str = "buffers are neat";
    
    const base64 = Buffer.from(str, "base64");
    console.log("base64: ", base64);
    
    assert.strictEqual(
      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!");
    

    Unfortunately there's something that I am not getting here... I tried to re-read the material, but i could not find anything to help me. Can someone share a solution? This one seems silly but there's something that I am not getting yet...

    @gregsheppard reply on another topic:

    "you're using assert.strictEqual rather than assert.equal, which is what I see in the course code and coerces the buffer to a string (or maybe the other way around?). Try either switching to assert.equal or adding the toString() method to the buffer."

    It was indeed that. Thanks :)

This discussion has been closed.

Categories

Upcoming Training