add tests to better document reference comments

pofile does not process reference comments in any way, since the format of
references is not exactly specified. This test specifies, what users of
pofile can expect the library to do.
This commit is contained in:
Julian Bäume 2014-08-12 17:47:47 +02:00
parent 2e1640d847
commit cfc9b2ae82
2 changed files with 26 additions and 11 deletions

View File

@ -24,3 +24,7 @@ msgstr "Attribut title, en tant que texte brut"
#: b #: b
msgid "X" msgid "X"
msgstr "Y" msgstr "Y"
#: standard input:12 standard input:17
msgid "Z"
msgstr "ZZ"

View File

@ -67,21 +67,32 @@ describe('Parse', function () {
assert.deepEqual(item.extractedComments, ['Extracted comment']); assert.deepEqual(item.extractedComments, ['Extracted comment']);
}); });
it('Handles string references', function () { describe('Handles string references', function () {
var po = PO.parse(fs.readFileSync(__dirname + '/fixtures/reference.po', 'utf8')); var po = PO.parse(fs.readFileSync(__dirname + '/fixtures/reference.po', 'utf8'));
assert.notEqual(po, null); assert.notEqual(po, null);
assert.equal(po.items.length, 2); assert.equal(po.items.length, 3);
var item = po.items[0]; it('in simple cases', function () {
assert.equal(item.msgid, 'Title, as plain text'); var item = po.items[0];
assert.equal(item.msgstr, 'Attribut title, en tant que texte brut'); assert.equal(item.msgid, 'Title, as plain text');
assert.deepEqual(item.comments, ['Comment']); assert.equal(item.msgstr, 'Attribut title, en tant que texte brut');
assert.deepEqual(item.references, ['.tmp/crm/controllers/map.js']); assert.deepEqual(item.comments, ['Comment']);
assert.deepEqual(item.references, ['.tmp/crm/controllers/map.js']);
});
item = po.items[1]; it('with two different references', function () {
assert.equal(item.msgid, 'X'); var item = po.items[1];
assert.equal(item.msgstr, 'Y'); assert.equal(item.msgid, 'X');
assert.deepEqual(item.references, ['a', 'b']); assert.equal(item.msgstr, 'Y');
assert.deepEqual(item.references, ['a', 'b']);
});
it('and does not process reference items', function () {
var item = po.items[2];
assert.equal(item.msgid, 'Z');
assert.equal(item.msgstr, 'ZZ');
assert.deepEqual(item.references, ['standard input:12 standard input:17']);
});
}); });
it('Parses flags', function () { it('Parses flags', function () {