|
1 | 1 | describe("AssetFingerprint", function() {
|
2 | 2 | var AssetFingerprint = require('../index');
|
| 3 | + var fs = require('fs'); |
3 | 4 | var fingerprint;
|
4 | 5 |
|
5 | 6 | describe("initialization", function() {
|
@@ -37,5 +38,55 @@ describe("AssetFingerprint", function() {
|
37 | 38 | expect(fingerprint).toThrowError('Please supply a directory path for your initializer, such as `config/initializers`.');
|
38 | 39 | });
|
39 | 40 | });
|
| 41 | + |
| 42 | + describe("fingerprint name", function() { |
| 43 | + it("should use ASSET_FINGERPRINT when no args are passed", function () { |
| 44 | + var dir = 'config/initializers'; |
| 45 | + fingerprint = new AssetFingerprint(dir); |
| 46 | + expect(fingerprint.fingerprintName).toEqual("ASSET_FINGERPRINT"); |
| 47 | + }); |
| 48 | + |
| 49 | + it("should use value when provided", function () { |
| 50 | + var dir = 'config/initializers'; |
| 51 | + fingerprint = new AssetFingerprint(dir, true, "FINGERPRINT_VALUE"); |
| 52 | + expect(fingerprint.fingerprintName).toEqual("FINGERPRINT_VALUE"); |
| 53 | + }); |
| 54 | + }); |
| 55 | + |
| 56 | + describe("apply", function() { |
| 57 | + beforeEach(function() { |
| 58 | + spyOn(fs, "writeFileSync"); |
| 59 | + spyOn(fs, "appendFileSync"); |
| 60 | + spyOn(console, "log"); |
| 61 | + }); |
| 62 | + |
| 63 | + it("should call writeFileSync on default arguments", function() { |
| 64 | + var dir = 'config/initializers'; |
| 65 | + fingerprint = new AssetFingerprint(dir); |
| 66 | + fingerprint.apply({ |
| 67 | + plugin: function(status, callback) { callback({hash: "A1B2C3D4"}) } |
| 68 | + }); |
| 69 | + |
| 70 | + expect(fs.writeFileSync).toHaveBeenCalledWith( |
| 71 | + 'config/initializers/asset_fingerprint.rb', "ASSET_FINGERPRINT = 'A1B2C3D4'"); |
| 72 | + |
| 73 | + expect(console.log).toHaveBeenCalledWith( |
| 74 | + "asset-fingerprint-webpack-rails: updated file config/initializers/asset_fingerprint.rb with ASSET_FINGERPRINT = A1B2C3D4"); |
| 75 | + }); |
| 76 | + |
| 77 | + it("should call appendFileSync on provided fingerprint name argument", function() { |
| 78 | + var dir = 'config/initializers'; |
| 79 | + fingerprint = new AssetFingerprint(dir, true, "FINGERPRINT_VALUE"); |
| 80 | + fingerprint.apply({ |
| 81 | + plugin: function(status, callback) { callback({hash: "Z1Y2X3W4"}) } |
| 82 | + }); |
| 83 | + |
| 84 | + expect(fs.appendFileSync).toHaveBeenCalledWith( |
| 85 | + 'config/initializers/asset_fingerprint.rb', "\r\nFINGERPRINT_VALUE = 'Z1Y2X3W4'"); |
| 86 | + |
| 87 | + expect(console.log).toHaveBeenCalledWith( |
| 88 | + "asset-fingerprint-webpack-rails: updated file config/initializers/asset_fingerprint.rb with FINGERPRINT_VALUE = Z1Y2X3W4"); |
| 89 | + }); |
| 90 | + }); |
40 | 91 | });
|
41 | 92 | });
|
0 commit comments