[go: nahoru, domu]

blob: ece445276e46958a8c8c8cb045774e8a88444d55 [file] [log] [blame]
// Copyright 2023 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
const {assert} = chai;
import * as Recorder from '../../../../../../front_end/panels/recorder/models/models.js';
import {
describeWithEnvironment,
} from '../../../../../../test/unittests/front_end/helpers/EnvironmentHelpers.js';
describeWithEnvironment('RecordingStorage', () => {
beforeEach(() => {
Recorder.RecordingStorage.RecordingStorage.instance().clearForTest();
});
after(() => {
Recorder.RecordingStorage.RecordingStorage.instance().clearForTest();
});
class MockIdGenerator {
#id = 1;
next() {
const result = `recording_${this.#id}`;
this.#id++;
return result;
}
}
it('should create and retrieve recordings', async () => {
const storage = Recorder.RecordingStorage.RecordingStorage.instance();
storage.setIdGeneratorForTest(new MockIdGenerator());
const flow1 = {title: 'Test1', steps: []};
const flow2 = {title: 'Test2', steps: []};
const flow3 = {title: 'Test3', steps: []};
assert.deepEqual(await storage.saveRecording(flow1), {
storageName: 'recording_1',
flow: flow1,
});
assert.deepEqual(await storage.saveRecording(flow2), {
storageName: 'recording_2',
flow: flow2,
});
assert.deepEqual(await storage.getRecordings(), [
{storageName: 'recording_1', flow: flow1},
{storageName: 'recording_2', flow: flow2},
]);
assert.deepEqual(await storage.getRecording('recording_2'), {
storageName: 'recording_2',
flow: flow2,
});
assert.deepEqual(await storage.getRecording('recording_3'), undefined);
assert.deepEqual(await storage.updateRecording('recording_2', flow3), {
storageName: 'recording_2',
flow: flow3,
});
assert.deepEqual(await storage.getRecording('recording_2'), {
storageName: 'recording_2',
flow: flow3,
});
await storage.deleteRecording('recording_2');
assert.deepEqual(await storage.getRecordings(), [
{storageName: 'recording_1', flow: flow1},
]);
});
});